home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / pcboard / ofile18a.zip / OFILE.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-11-06  |  49KB  |  2,960 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Boolean  BOOLEAN008
  27.     Boolean  BOOLEAN009
  28.     Boolean  BOOLEAN010
  29.     Boolean  BOOLEAN011
  30.     Boolean  BOOLEAN012
  31.     Boolean  BOOLEAN013
  32.     Boolean  BOOLEAN016
  33.     Boolean  BOOLEAN017
  34.     Boolean  BOOLEAN018
  35.     Boolean  BOOLEAN019
  36.     Boolean  BOOLEAN020
  37.     Boolean  BOOLEAN021
  38.     Boolean  BOOLEAN022
  39.     Boolean  BOOLEAN024
  40.     Boolean  BOOLEAN025
  41.     Boolean  BOOLEAN026
  42.     Boolean  BOOLEAN029
  43.     Boolean  BOOLEAN030
  44.     Boolean  BOOLEAN031
  45.     Boolean  BOOLEAN032
  46.     Boolean  BOOLEAN034
  47.     Boolean  BOOLEAN035
  48.     Boolean  BOOLEAN036
  49.     Boolean  BOOLEAN037
  50.     Boolean  BOOLEAN038
  51.     Boolean  BOOLEAN039
  52.     Boolean  BOOLEAN040
  53.     Boolean  BOOLEAN041
  54.     Boolean  BOOLEAN042
  55.     Boolean  BOOLEAN043
  56.     Integer  INTEGER001
  57.     Integer  INTEGER002
  58.     Integer  INTEGER003
  59.     Integer  INTEGER004
  60.     Integer  INTEGER005
  61.     Integer  INTEGER006
  62.     Integer  INTEGER007
  63.     Integer  INTEGER008
  64.     Integer  INTEGER009
  65.     Integer  INTEGER011
  66.     Integer  INTEGER012
  67.     Integer  INTEGER013
  68.     Integer  INTEGER014
  69.     Integer  INTEGER015
  70.     Integer  INTEGER016
  71.     Integer  INTEGER017
  72.     Integer  INTEGER018
  73.     Integer  INTEGER019
  74.     Integer  INTEGER020
  75.     Integer  INTEGER021
  76.     Integer  INTEGER022
  77.     Integer  INTEGER023
  78.     Integer  INTEGER026
  79.     Integer  INTEGER027
  80.     Integer  INTEGER028
  81.     Integer  INTEGER029
  82.     Integer  INTEGER030
  83.     Integer  INTEGER031
  84.     Integer  INTEGER032
  85.     Integer  INTEGER033
  86.     Integer  INTEGER034
  87.     Integer  INTEGER035
  88.     Integer  INTEGER042
  89.     Integer  INTEGER044
  90.     Integer  INTEGER045
  91.     Integer  INTEGER046
  92.     Integer  INTEGER047
  93.     Integer  INTEGER048
  94.     Integer  INTEGER049
  95.     Integer  INTEGER050
  96.     Integer  INTEGER051
  97.     Integer  INTEGER052
  98.     Integer  INTEGER053
  99.     Integer  INTEGER057
  100.     Integer  INTEGER058
  101.     Integer  INTEGER059
  102.     String   TSTRING001(600)
  103.     String   TSTRING002(1)
  104.     String   TSTRING003(99)
  105.     String   TSTRING004(40)
  106.     String   STRING005
  107.     String   STRING006
  108.     String   STRING007
  109.     String   STRING008
  110.     String   STRING009
  111.     String   STRING010
  112.     String   STRING011
  113.     String   STRING012
  114.     String   STRING013
  115.     String   STRING014
  116.     String   STRING015
  117.     String   STRING016
  118.     String   STRING017
  119.     String   STRING018
  120.     String   STRING019
  121.     String   STRING020
  122.     String   STRING021
  123.     String   STRING022
  124.     String   STRING023
  125.     String   STRING027
  126.     String   STRING028
  127.     String   STRING031
  128.     String   STRING033
  129.     String   STRING037
  130.     String   STRING038
  131.     String   STRING039
  132.     String   STRING040
  133.     String   STRING041
  134.     String   STRING042
  135.     String   STRING043
  136.     String   STRING046
  137.     String   STRING047
  138.     String   STRING051
  139.     String   STRING052
  140.     String   STRING053
  141.     String   STRING055
  142.     String   STRING056
  143.     String   STRING059
  144.     String   STRING060
  145.     String   STRING061
  146.     String   STRING062
  147.     String   STRING063
  148.     String   STRING065
  149.     String   STRING066
  150.     String   STRING067
  151.     String   STRING068
  152.     String   STRING072
  153.     String   STRING073
  154.     String   STRING074
  155.     String   STRING075
  156.     String   STRING076
  157.     String   STRING077
  158.     String   STRING080
  159.     String   STRING081
  160.     String   STRING082
  161.     String   STRING083
  162.     String   STRING084
  163.     String   STRING085
  164.     String   STRING086
  165.     String   STRING087
  166.     String   STRING095
  167.     String   STRING096
  168.     String   STRING097
  169.     String   STRING098
  170.     String   STRING099
  171.     String   STRING100
  172.     String   STRING101
  173.     String   STRING102
  174.     String   STRING103
  175.     String   STRING106
  176.     String   STRING107
  177.     String   STRING109
  178.     String   STRING112
  179.     String   STRING113
  180.     String   STRING116
  181.     String   STRING117
  182.     String   STRING118
  183.     Byte     BYTE004
  184.     Byte     BYTE005
  185.     Byte     BYTE008
  186.     Byte     BYTE009
  187.     Byte     BYTE010
  188.     Byte     BYTE011
  189.     Byte     BYTE012
  190.     Word     WORD004
  191.     Word     WORD005
  192.     Word     WORD006
  193.     Word     WORD007
  194.     Word     WORD008
  195.     Word     WORD009
  196.     Word     WORD010
  197.     Declare  Function FUNCTION001() Integer
  198.     Declare  Function FUNCTION002(String STRING078, String STRING079) String
  199.     Declare  Function FUNCTION003(String STRING104, String STRING105, Integer INTEGER054, Integer INTEGER055) String
  200.     Declare  Function FUNCTION004(String STRING108) String
  201.     Declare  Function FUNCTION005(String STRING094) String
  202.     Declare  Function FUNCTION006(Integer INTEGER062) String
  203.     Declare  Function FUNCTION007(Boolean BOOLEAN015) String
  204.     Declare  Procedure PROC001(Integer INTEGER043)
  205.     Declare  Procedure PROC002(String STRING069, Var String STRING070, Var String STRING071)
  206.     Declare  Procedure PROC003()
  207.     Declare  Procedure PROC004()
  208.     Declare  Procedure PROC005()
  209.     Declare  Procedure PROC006()
  210.     Declare  Procedure PROC007(Integer INTEGER056)
  211.     Declare  Procedure PROC008(String STRING110, String STRING111)
  212.     Declare  Procedure PROC009(String STRING114, Integer INTEGER060, Integer INTEGER061)
  213.     Declare  Procedure PROC010(String STRING115)
  214.     Declare  Procedure PROC011(String STRING024, Word WORD001, Var Word WORD002, Var Word WORD003, Var Boolean BOOLEAN014)
  215.     Declare  Procedure PROC012(String STRING025, String STRING026)
  216.     Declare  Procedure PROC013(Var String STRING036, Byte BYTE007)
  217.     Declare  Procedure PROC014(String STRING029, String STRING030, Byte BYTE001)
  218.     Declare  Procedure PROC015(String STRING034, Var String STRING035, Byte BYTE006)
  219.     Declare  Procedure PROC016(Var String STRING032, Byte BYTE002, Byte BYTE003)
  220.     Declare  Procedure PROC017(Integer INTEGER010)
  221.     Declare  Procedure PROC018(String STRING044, String STRING045)
  222.     Declare  Procedure PROC019(String STRING048, String STRING049, String STRING050)
  223.     Declare  Procedure PROC020(String STRING054, Boolean BOOLEAN023)
  224.     Declare  Procedure PROC021(String STRING057, String STRING058, Integer INTEGER024)
  225.     Declare  Procedure PROC022(String STRING064, Integer INTEGER025)
  226.     Declare  Procedure PROC023(Boolean BOOLEAN027, Boolean BOOLEAN028)
  227.  
  228. ;------------------------------------------------------------------------------
  229.  
  230.     StackAbort 0
  231.     StartDisp 1
  232.     Goto LABEL033
  233.     End
  234.  
  235. ;------------------------------------------------------------------------------
  236.  
  237.     Procedure PROC011(String STRING024, Word WORD001, Var Word WORD002, Var Word WORD003, Var Boolean BOOLEAN014)
  238.  
  239.     Integer  INTEGER004
  240.     Integer  INTEGER005
  241.     Integer  INTEGER006
  242.     Integer  INTEGER007
  243.     Integer  INTEGER008
  244.  
  245.     INTEGER008 = 20
  246.     INTEGER004 = WORD001
  247.     INTEGER005 = WORD002
  248.     INTEGER006 = WORD003
  249.     INTEGER007 = INTEGER008
  250.     If (STRING024 == "A") STRING024 = "UP"
  251.     If (STRING024 == "Z") STRING024 = "DOWN"
  252.     If (STRING024 == "S") STRING024 = "PGUP"
  253.     If (STRING024 == "X") STRING024 = "PGDN"
  254.     Select Case (STRING024)
  255.         Case "UP"
  256.             If (INTEGER006 == 1) Then
  257.                 If (INTEGER005 > 0) Then
  258.                     BOOLEAN014 = 1
  259.                     Dec INTEGER005
  260.                 Endif
  261.             Else
  262.                 Dec INTEGER006
  263.             Endif
  264.         Case "DOWN"
  265.             If (INTEGER006 == INTEGER007) Then
  266.                 If (INTEGER005 + INTEGER006 < INTEGER004) Then
  267.                     BOOLEAN014 = 1
  268.                     Inc INTEGER005
  269.                     INTEGER006 = INTEGER007
  270.                 Endif
  271.             ElseIf (INTEGER006 + INTEGER005 < INTEGER004) Then
  272.                 Inc INTEGER006
  273.             Endif
  274.         Case "PGUP"
  275.             If (INTEGER006 == 1) Then
  276.                 If (INTEGER005 - INTEGER007 > 0) Then
  277.                     BOOLEAN014 = 1
  278.                     INTEGER005 = INTEGER005 - INTEGER007
  279.                 ElseIf (INTEGER004 > INTEGER007) Then
  280.                     If (INTEGER005 <> 0) Then
  281.                         BOOLEAN014 = 1
  282.                         INTEGER005 = 0
  283.                         INTEGER006 = 1
  284.                     Endif
  285.                 Endif
  286.             Else
  287.                 INTEGER006 = 1
  288.             Endif
  289.         Case "PGDN"
  290.             If (INTEGER006 == INTEGER007) Then
  291.                 If (INTEGER005 + INTEGER007 + INTEGER007 < INTEGER004) Then
  292.                     BOOLEAN014 = 1
  293.                     INTEGER005 = INTEGER005 + INTEGER007
  294.                 ElseIf (INTEGER004 > INTEGER007) Then
  295.                     If (INTEGER004 <> INTEGER006 + WORD002) Then
  296.                         BOOLEAN014 = 1
  297.                         INTEGER005 = INTEGER004 - INTEGER007
  298.                         INTEGER006 = INTEGER007
  299.                     Endif
  300.                 Endif
  301.             Else
  302.                 If (INTEGER004 > INTEGER007) Then
  303.                     INTEGER006 = INTEGER007
  304.                 ElseIf (INTEGER004 > 0) Then
  305.                     INTEGER006 = INTEGER004
  306.                 Else
  307.                     INTEGER006 = 1
  308.                 Endif
  309.             Endif
  310.         Case "HOME"
  311.             If (INTEGER005 > 0) Then
  312.                 BOOLEAN014 = 1
  313.                 INTEGER006 = 1
  314.                 INTEGER005 = 0
  315.             Else
  316.                 INTEGER006 = 1
  317.             Endif
  318.         Case "END"
  319.         Case 0
  320.             If (INTEGER004 < INTEGER007) Then
  321.                 INTEGER006 = INTEGER004
  322.                 Goto LABEL001
  323.             Endif
  324.         Case INTEGER006 + WORD002
  325.             BOOLEAN014 = 1
  326.             INTEGER006 = INTEGER007
  327.             INTEGER005 = INTEGER004 - INTEGER007
  328.     End Select
  329.     :LABEL001
  330.     WORD002 = INTEGER005
  331.     WORD003 = INTEGER006
  332.  
  333.     EndProc
  334.  
  335.  
  336. ;------------------------------------------------------------------------------
  337.  
  338.     Procedure PROC012(String STRING025, String STRING026)
  339.  
  340.     String   STRING027
  341.  
  342.     AnsiPos STRING025, STRING026
  343.     ClrEol
  344.     AnsiPos STRING025, STRING026
  345.     Print "@X0FPress any Key to continue...@X07"
  346.     :LABEL002
  347.     STRING027 = ""
  348.     While (STRING027 == "") Do
  349.         STRING027 = Upper(Inkey())
  350.     EndWhile
  351.     If (STRING027 <> "") Goto LABEL003
  352.     Goto LABEL002
  353.     :LABEL003
  354.  
  355.     EndProc
  356.  
  357.  
  358. ;------------------------------------------------------------------------------
  359.  
  360.     Function FUNCTION007(Boolean BOOLEAN015) String
  361.  
  362.     String   STRING029
  363.  
  364.     While (FUNCTION007 == "") Do
  365.         If (BOOLEAN015) Then
  366.             FUNCTION007 = Upper(Inkey())
  367.             Continue
  368.         Endif
  369.         FUNCTION007 = Inkey()
  370.     EndWhile
  371.  
  372.     EndFunc
  373.  
  374.  
  375. ;------------------------------------------------------------------------------
  376.  
  377.     Procedure PROC014(String STRING029, String STRING030, Byte BYTE001)
  378.  
  379.     Integer  INTEGER009
  380.     String   STRING031
  381.  
  382.     Print STRING029
  383.     INTEGER009 = 1
  384.     STRING031 = ""
  385.     For INTEGER009 = 1 To BYTE001
  386.         STRING031 = STRING031 + STRING030
  387.     Next
  388.     Print STRING031
  389.  
  390.     EndProc
  391.  
  392.  
  393. ;------------------------------------------------------------------------------
  394.  
  395.     Procedure PROC016(Var String STRING032, Byte BYTE002, Byte BYTE003)
  396.  
  397.     String   STRING033
  398.     Byte     BYTE004
  399.     Byte     BYTE005
  400.  
  401.     BYTE005 = Len(STRING032)
  402.     BYTE004 = BYTE005
  403.     BYTE004 = BYTE004 - BYTE002 - BYTE003
  404.     STRING033 = Left(STRING032, BYTE002)
  405.     If (BYTE004 < BYTE005) Then
  406.         STRING033 = STRING033 + Right(STRING032, BYTE004)
  407.     Endif
  408.     STRING032 = STRING033
  409.  
  410.     EndProc
  411.  
  412.  
  413. ;------------------------------------------------------------------------------
  414.  
  415.     Procedure PROC015(String STRING034, Var String STRING035, Byte BYTE006)
  416.  
  417.     STRING035 = Left(STRING035, BYTE006) + STRING034 + Right(STRING035, Len(STRING035) - BYTE006)
  418.  
  419.     EndProc
  420.  
  421.  
  422. ;------------------------------------------------------------------------------
  423.  
  424.     Procedure PROC013(Var String STRING036, Byte BYTE007)
  425.  
  426.     String   STRING037
  427.     String   STRING038
  428.     String   STRING039
  429.     Byte     BYTE008
  430.     Byte     BYTE009
  431.     Byte     BYTE010
  432.     Boolean  BOOLEAN016
  433.  
  434.     STRING037 = STRING036
  435.     BYTE009 = GetX()
  436.     BYTE010 = GetY()
  437.     BYTE008 = Len(STRING036)
  438.     BOOLEAN016 = 0
  439.     STRING038 = STRING036
  440.     AnsiPos BYTE009 + Len(STRING036), BYTE010
  441.     PROC014("@X30", "▒", BYTE007 - Len(STRING036))
  442.     While (BOOLEAN016 == 0) Do
  443.         AnsiPos BYTE009, BYTE010
  444.         Color 15 + 16 * 3
  445.         Print STRING038
  446.         Color 0 + 16 * 3
  447.         If (Len(STRING038) <> BYTE007) Print "▒"
  448.         Color 15 + 16 * 1
  449.         AnsiPos BYTE009 + BYTE008, BYTE010
  450.         Color 15 + 16 * 1
  451.         STRING039 = FUNCTION007(0)
  452.         If (STRING039 == "LEFT") Then
  453.             If (BYTE008 > 0) Then
  454.                 Dec BYTE008
  455.             Endif
  456.             Continue
  457.         Endif
  458.         If (STRING039 == "RIGHT") Then
  459.             If ((BYTE008 < BYTE007) && (BYTE008 < Len(STRING038))) Then
  460.                 Inc BYTE008
  461.             Endif
  462.             Continue
  463.         Endif
  464.         If ((STRING039 == "HOME") || (STRING039 == "CTRL HOME")) Then
  465.             BYTE008 = 0
  466.             Continue
  467.         Endif
  468.         If ((STRING039 == "END") || (STRING039 == "CTRL END")) Then
  469.             BYTE008 = Len(STRING038)
  470.             Continue
  471.         Endif
  472.         If (STRING039 == "DEL") Then
  473.             If (BYTE008 < Len(STRING038)) Then
  474.                 PROC016(STRING038, BYTE008, 1)
  475.             Endif
  476.             Continue
  477.         Endif
  478.         If (STRING039 == Chr(8)) Then
  479.             If (BYTE008 > 0) Then
  480.                 PROC016(STRING038, BYTE008 - 1, 1)
  481.                 Dec BYTE008
  482.             Endif
  483.             Continue
  484.         Endif
  485.         If (STRING039 == Chr(27)) Then
  486.             STRING038 = STRING037
  487.             BOOLEAN016 = 1
  488.             Continue
  489.         Endif
  490.         If (STRING039 == Chr(13)) Then
  491.             BOOLEAN016 = 1
  492.             Continue
  493.         Endif
  494.         If ((((((STRING039 == "PGUP") || (STRING039 == "PGDN")) || (STRING039 == "UP")) || (STRING039 == "DOWN")) || (STRING039 == "INS")) || (STRING039 == "BADKEY")) Then
  495.             BYTE008 = BYTE008
  496.             Continue
  497.         Endif
  498.         If ((((STRING039 == "CTRL PGUP") || (STRING039 == "CTRL PGDN")) || (STRING039 == "CTRL LEFT")) || (STRING039 == "CTRL RIGHT")) Then
  499.             BYTE008 = BYTE008
  500.             Continue
  501.         Endif
  502.         If ((STRING039 >= Chr(32)) && (STRING039 <= Chr(255))) Then
  503.             If (Len(STRING038) < BYTE007) Then
  504.                 PROC015(STRING039, STRING038, BYTE008)
  505.                 Inc BYTE008
  506.                 Print STRING039
  507.             Endif
  508.             Continue
  509.         Endif
  510.     EndWhile
  511.     STRING036 = STRING038
  512.     AnsiPos BYTE009 + Len(STRING036), BYTE010
  513.  
  514.     EndProc
  515.  
  516.  
  517. ;------------------------------------------------------------------------------
  518.  
  519.     Procedure PROC017(Integer INTEGER010)
  520.  
  521.     String   STRING040
  522.     String   STRING041
  523.     String   STRING042
  524.     String   STRING043
  525.     Integer  INTEGER011
  526.     Integer  INTEGER012
  527.     Integer  INTEGER013
  528.     Integer  INTEGER014
  529.     Word     WORD004
  530.     Word     WORD005
  531.     Boolean  BOOLEAN017
  532.     Boolean  BOOLEAN018
  533.     Byte     BYTE011
  534.  
  535.     STRING043 = TSTRING001(INTEGER010)
  536.     STRING043 = Strip(Left(STRING043, 12), " ")
  537.     INTEGER011 = 40
  538.     WORD004 = 0
  539.     INTEGER012 = 0
  540.     WORD005 = 1
  541.     PROC018(STRING043, STRING012)
  542.     While ((INTEGER011 > 0) && (TSTRING004(INTEGER011) == "")) Do
  543.         Dec INTEGER011
  544.     EndWhile
  545.     INTEGER012 = INTEGER011
  546.     AnsiPos 1, 1
  547.     ClrEol
  548.     Print "@X0E─═ @X03Edit File Description (DizEditor) @X0E─═════════ @X03You are editing:@X09 ", STRING043
  549.     AnsiPos 1, 22
  550.     Print "@X0E═══════════════════════════════════════════════════════════════════════(00@X08/@X0E  )"
  551.     ClrEol
  552.     PROC009(INTEGER012, 76, 22)
  553.     PROC009(WORD004 + WORD005, 73, 22)
  554.     Gosub LABEL009
  555.     Gosub LABEL007
  556.     :LABEL004
  557.     Gosub LABEL005
  558.     STRING040 = ""
  559.     While (STRING040 == "") Do
  560.         STRING040 = Upper(Inkey())
  561.     EndWhile
  562.     Gosub LABEL006
  563.     If ((((((((((STRING040 == "UP") || (STRING040 == "DOWN")) || (STRING040 == "HOME")) || (STRING040 == "END")) || (STRING040 == "PGUP")) || (STRING040 == "PGDN")) || (STRING040 == "A")) || (STRING040 == "Z")) || (STRING040 == "S")) || (STRING040 == "X")) Then
  564.         PROC011(STRING040, INTEGER012, WORD004, WORD005, BOOLEAN017)
  565.         PROC009(WORD004 + WORD005, 73, 22)
  566.     Endif
  567.     If (BOOLEAN017) Then
  568.         Gosub LABEL007
  569.         BOOLEAN017 = 0
  570.     Endif
  571.     If (Upper(STRING040) == "H") Gosub LABEL009
  572.     If (STRING040 == Chr(1)) Gosub LABEL012
  573.     If (STRING040 == Chr(4)) Gosub LABEL010
  574.     If (STRING040 == Chr(13)) Gosub LABEL008
  575.     If (STRING040 == Chr(27)) Goto LABEL013
  576.     Goto LABEL004
  577.     :LABEL005
  578.     STRING041 = ScrText(1, WORD005 + 1, 45, 0)
  579.     AnsiPos 1, WORD005 + 1
  580.     If (GrafMode() == "A") Then
  581.         Print " ", Upper(STRING041)
  582.     Else
  583.         Print "@X1F", STRING041
  584.     Endif
  585.     AnsiPos 1, WORD005 + 1
  586.     Return
  587.     :LABEL006
  588.     STRING041 = TSTRING004(WORD004 + WORD005)
  589.     AnsiPos 1, WORD005 + 1
  590.     While (Len(STRING041) < 45) Do
  591.         STRING041 = STRING041 + " "
  592.     EndWhile
  593.     Print "@X07", STRING041, " "
  594.     Return
  595.     :LABEL007
  596.     AnsiPos 1, 23
  597.     ClrEol
  598.     Print "@X0FDizEdit: ", Chr(24), "@X08/@X0F", Chr(25), "@X08/@X0FPGUP@X08/@X0FPGDOWN@X08/@X0FHOME@X08/@X0FEND - (Enter)Edit - (ESC)Ready "
  599.     BYTE011 = 1
  600.     Color 7
  601.     While ((BYTE011 < 21) && (WORD004 + BYTE011 <= INTEGER012)) Do
  602.         AnsiPos 1, BYTE011 + 1
  603.         Print Space(45)
  604.         AnsiPos 1, BYTE011 + 1
  605.         Print TSTRING004(WORD004 + BYTE011)
  606.         Inc BYTE011
  607.     EndWhile
  608.     If (BYTE011 < 21) Then
  609.         While (BYTE011 < 21) Do
  610.             AnsiPos 1, BYTE011 + 1
  611.             Print Space(45)
  612.             Inc BYTE011
  613.         EndWhile
  614.     Endif
  615.     Return
  616.     :LABEL008
  617.     BOOLEAN018 = 1
  618.     AnsiPos 1, GetY()
  619.     STRING041 = TSTRING004(WORD004 + WORD005)
  620.     PROC013(STRING041, 45)
  621.     TSTRING004(WORD004 + WORD005) = STRING041
  622.     AnsiPos 1, WORD005 + 1
  623.     While (Len(STRING041) < 45) Do
  624.         STRING041 = STRING041 + " "
  625.     EndWhile
  626.     Print "@X07", STRING041, " "
  627.     Return
  628.     :LABEL009
  629.     AnsiPos 46, 2
  630.     Print "@X03 DizEditor in O-File             "
  631.     AnsiPos 46, 3
  632.     Print " ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀             "
  633.     AnsiPos 46, 4
  634.     ClrEol
  635.     AnsiPos 46, 5
  636.     Print " To edit hightlighted line press "
  637.     AnsiPos 46, 6
  638.     Print " (@X0BReturn@X03). Edit the line, and    "
  639.     AnsiPos 46, 7
  640.     Print " when ready press (@X0BReturn@X03) again."
  641.     AnsiPos 46, 8
  642.     Print " To exit whithout saving changes "
  643.     AnsiPos 46, 9
  644.     Print " to the new line press (@X0BESC@X03).    "
  645.     AnsiPos 46, 10
  646.     ClrEol
  647.     AnsiPos 46, 11
  648.     ClrEol
  649.     AnsiPos 46, 12
  650.     Print "@X0A CTRL-D = @X02Delete Line            "
  651.     AnsiPos 46, 13
  652.     Print "@X0A CTRL-A = @X02Add Line               "
  653.     AnsiPos 46, 14
  654.     ClrEol
  655.     AnsiPos 46, 15
  656.     Print "@X03 To exit DizEditor press (@X0BESC@X03)   "
  657.     AnsiPos 46, 16
  658.     Print " and select whether you want to  "
  659.     AnsiPos 46, 17
  660.     Print " save the new Description or not "
  661.     AnsiPos 46, 18
  662.     ClrEol
  663.     AnsiPos 46, 19
  664.     Print " There can be 40 lines maximum in"
  665.     AnsiPos 46, 20
  666.     Print " a file description.             "
  667.     AnsiPos 46, 21
  668.     ClrEol
  669.     Return
  670.     :LABEL010
  671.     BOOLEAN018 = 1
  672.     If (INTEGER012 == 1) TSTRING004(1) = ""
  673.     If (INTEGER012 > 1) Then
  674.         INTEGER011 = WORD004 + WORD005
  675.         While (INTEGER011 <= INTEGER012) Do
  676.             If (INTEGER011 <= INTEGER012) Then
  677.                 TSTRING004(INTEGER011) = TSTRING004(INTEGER011 + 1)
  678.                 If (INTEGER011 == INTEGER012) Then
  679.                     TSTRING004(INTEGER011) = ""
  680.                 Endif
  681.             Endif
  682.             Inc INTEGER011
  683.         EndWhile
  684.         If (20 >= INTEGER012) Then
  685.             If (WORD004 + WORD005 == INTEGER012) Dec WORD005
  686.             Goto LABEL011
  687.         Endif
  688.         If ((WORD004 + 20 == INTEGER012) && (WORD004 >= 1)) Dec WORD004
  689.         :LABEL011
  690.         Dec INTEGER012
  691.         PROC009(INTEGER012, 76, 22)
  692.         PROC009(WORD004 + WORD005, 73, 22)
  693.     Endif
  694.     Gosub LABEL007
  695.     Return
  696.     :LABEL012
  697.     BOOLEAN018 = 1
  698.     If (INTEGER012 < 40) Then
  699.         INTEGER012 = INTEGER012 + 1
  700.         INTEGER011 = INTEGER012
  701.         While (INTEGER011 >= WORD004 + WORD005) Do
  702.             TSTRING004(INTEGER011 + 1) = TSTRING004(INTEGER011)
  703.             Dec INTEGER011
  704.         EndWhile
  705.         TSTRING004(INTEGER011 + 1) = ""
  706.         PROC009(INTEGER012, 76, 22)
  707.         PROC009(WORD004 + WORD005, 73, 22)
  708.         Gosub LABEL007
  709.     Endif
  710.     Return
  711.     :LABEL013
  712.     If (BOOLEAN018 == 1) Then
  713.         If (FUNCTION004(" Do you want to save description    :            ") == "Y") Then
  714.             INTEGER011 = 40
  715.             While (INTEGER011 > 0) Do
  716.                 If (Strip(TSTRING004(INTEGER011), " ") <> "") Then
  717.                     INTEGER014 = INTEGER011
  718.                     INTEGER011 = 1
  719.                 Endif
  720.                 Dec INTEGER011
  721.             EndWhile
  722.             INTEGER011 = 0
  723.             FCreate 2, PPEPath() + "WORK\NEWDIZ." + String(PcbNode()), 2, 0
  724.             FPut 2, TSTRING004(INTEGER011)
  725.             Inc INTEGER011
  726.             FPut 2, TSTRING004(INTEGER011), Chr(13), Chr(10)
  727.             Inc INTEGER011
  728.             While (INTEGER011 <= INTEGER014) Do
  729.                 FPut 2, Space(31), "| ", TSTRING004(INTEGER011), Chr(13), Chr(10)
  730.                 Inc INTEGER011
  731.             EndWhile
  732.             FClose 2
  733.             FCreate 1, PPEPath() + "WORK\RESULT." + String(PcbNode()), 2, 0
  734.             FPut 1, STRING013, Chr(13), Chr(10)
  735.             FPut 1, STRING012, Chr(13), Chr(10)
  736.             FPut 1, TSTRING002(0), Chr(13), Chr(10)
  737.             FPut 1, PPEPath() + "WORK\NEWDIZ." + String(PcbNode()), Chr(13), Chr(10)
  738.             FPut 1, "U", Chr(13), Chr(10)
  739.             FPut 1, STRING043, Chr(13), Chr(10)
  740.             FClose 1
  741.             Print "The new Description is saved... Please Wait..."
  742.             STRING042 = String(PcbNode()) + " " + PPEPath()
  743.             Shell 1, INTEGER013, PPEPath() + "OFILE", STRING042
  744.             PROC007(INTEGER013)
  745.             PROC010("EDIT ")
  746.         Endif
  747.     Endif
  748.     BOOLEAN018 = 0
  749.     STRING043 = TSTRING004(0) + TSTRING004(1)
  750.     TSTRING001(INTEGER010) = STRING043
  751.  
  752.     EndProc
  753.  
  754.  
  755. ;------------------------------------------------------------------------------
  756.  
  757.     Procedure PROC018(String STRING044, String STRING045)
  758.  
  759.     String   STRING046
  760.     String   STRING047
  761.     Boolean  BOOLEAN019
  762.     Integer  INTEGER015
  763.     Integer  INTEGER016
  764.     Integer  INTEGER017
  765.     Boolean  BOOLEAN020
  766.  
  767.     For INTEGER016 = 0 To 40
  768.         TSTRING004(INTEGER016) = ""
  769.     Next
  770.     INTEGER015 = 0
  771.     INTEGER016 = 0
  772.     INTEGER017 = 0
  773.     AnsiPos 1, 23
  774.     ClrEol
  775.     AnsiPos 1, 23
  776.     Print "@X0F", "Searching for DIZ... Please wait@X07"
  777.     FOpen 1, STRING045, 0, 0
  778.     FDefIn 1
  779.     :LABEL014
  780.     FDGet STRING046
  781.     STRING047 = Left(STRING046, 12)
  782.     STRING047 = Strip(STRING047, " ")
  783.     If (STRING047 <> "") Then
  784.         If (STRING047 == STRING044) Then
  785.             If (BOOLEAN013) STRING046 = StripAtx(STRING046)
  786.             TSTRING004(INTEGER017) = Left(STRING046, 33)
  787.             Inc INTEGER017
  788.             TSTRING004(INTEGER017) = Right(STRING046, Len(STRING046) - 33)
  789.             Inc INTEGER017
  790.             FDGet STRING046
  791.             While (!BOOLEAN020 && !BOOLEAN019) Do
  792.                 STRING047 = Left(STRING046, 12)
  793.                 STRING047 = Strip(STRING047, " ")
  794.                 If (STRING047 <> "") Then
  795.                     STRING047 = Strip(Mid(STRING046, 13, 9), " ")
  796.                     If ((Mid(STRING046, 22, 2) == "  ") && (STRING047 == String(S2I(STRING047, 10)))) Then
  797.                         BOOLEAN020 = 1
  798.                     Endif
  799.                     Goto LABEL015
  800.                 Endif
  801.                 If (INTEGER017 <= 40) Then
  802.                     If (INTEGER017 == 40) BOOLEAN020 = 1
  803.                     If (BOOLEAN013) STRING046 = StripAtx(STRING046)
  804.                     TSTRING004(INTEGER017) = Right(STRING046, Len(STRING046) - 33)
  805.                     Inc INTEGER017
  806.                 Endif
  807.                 :LABEL015
  808.                 BOOLEAN019 = Ferr(1)
  809.                 FDGet STRING046
  810.             EndWhile
  811.         Endif
  812.     Endif
  813.     If (BOOLEAN020) Goto LABEL016
  814.     BOOLEAN019 = Ferr(1)
  815.     If (!BOOLEAN019) Goto LABEL014
  816.     :LABEL016
  817.     TSTRING004(INTEGER017) = ""
  818.     FClose 1
  819.     While (INTEGER016 < 40) Do
  820.         If (TSTRING004(INTEGER016) <> "") Then
  821.             If (BOOLEAN004) Then
  822.                 For INTEGER015 = 0 To 31
  823.                     TSTRING004(INTEGER016) = Strip(TSTRING004(INTEGER016), Chr(INTEGER015))
  824.                 Next
  825.             Endif
  826.         Endif
  827.         Inc INTEGER016
  828.     EndWhile
  829.  
  830.     EndProc
  831.  
  832.  
  833. ;------------------------------------------------------------------------------
  834.  
  835.     Procedure PROC019(String STRING048, String STRING049, String STRING050)
  836.  
  837.     String   STRING051
  838.     String   STRING052
  839.     String   STRING053
  840.     Integer  INTEGER018
  841.     Integer  INTEGER019
  842.     Integer  INTEGER020
  843.     Integer  INTEGER021
  844.     Integer  INTEGER022
  845.     Boolean  BOOLEAN021
  846.     Boolean  BOOLEAN022
  847.  
  848.     INTEGER019 = 0
  849.     INTEGER018 = 0
  850.     :LABEL017
  851.     FOpen 1, STRING048, 0, 0
  852.     FDefIn 1
  853.     Cls
  854.     If (STRING050 <> "") Then
  855.         BOOLEAN011 = 1
  856.         AnsiPos 1, 21
  857.         PrintLn " @X07Locate Filter :@X0F ", Upper(STRING050), "@X07  (Esc) = Break"
  858.         Print "@X03 Descriptions matching filter:@X0B ", INTEGER022
  859.         AnsiPos 1, 22
  860.     Else
  861.         AnsiPos 19, 10
  862.         Print "@X0FStripping Descriptions@X07"
  863.         Print "@X07     (Esc) = Break"
  864.     Endif
  865.     TSTRING002(0) = STRING049
  866.     TSTRING002(1) = STRING048
  867.     :LABEL018
  868.     If (Inkey() == Chr(27)) Then
  869.         AnsiPos 10, 13
  870.         PrintLn "@X0C Escape detected. Only @X0F", INTEGER018, "@X0C files were read into the list..."
  871.         PROC012(1, 23)
  872.     Else
  873.         FDGet STRING051
  874.         STRING051 = StripAtx(STRING051)
  875.         STRING052 = Left(STRING051, 12)
  876.         STRING052 = Strip(STRING052, " ")
  877.         Gosub LABEL023
  878.         If (STRING052 <> "") Then
  879.             STRING052 = Strip(Mid(STRING051, 13, 9), " ")
  880.             If ((Mid(STRING051, 22, 2) == "  ") && (STRING052 == String(S2I(STRING052, 10)))) Then
  881.                 :LABEL019
  882.                 If (BOOLEAN004) Then
  883.                     For INTEGER019 = 0 To 31
  884.                         STRING051 = Strip(STRING051, Chr(INTEGER019))
  885.                     Next
  886.                 Endif
  887.                 STRING053 = STRING051
  888.                 If (STRING050 <> "") Then
  889.                     SearchInit STRING050, 0
  890.                     SearchFind STRING051, BOOLEAN021
  891.                     If (BOOLEAN021) Then
  892.                         Gosub LABEL022
  893.                         TSTRING001(INTEGER018 + 2) = STRING053
  894.                         Inc INTEGER018
  895.                         Goto LABEL025
  896.                     Endif
  897.                     Goto LABEL020
  898.                 Endif
  899.                 TSTRING001(INTEGER018 + 2) = STRING051
  900.                 Inc INTEGER018
  901.             Endif
  902.             :LABEL020
  903.         Else
  904.             If (STRING050 <> "") Then
  905.                 SearchInit STRING050, 0
  906.                 SearchFind STRING051, BOOLEAN021
  907.                 If (BOOLEAN021) Then
  908.                     Gosub LABEL022
  909.                     TSTRING001(INTEGER018 + 2) = STRING053
  910.                     Inc INTEGER018
  911.                     Goto LABEL025
  912.                 Endif
  913.             Endif
  914.         Endif
  915.         If (INTEGER018 + 2 < 600) Then
  916.             SearchStop
  917.             BOOLEAN022 = Ferr(1)
  918.             If (!BOOLEAN022) Goto LABEL018
  919.         Else
  920.             AnsiPos 8, 11
  921.             Print "                                                                      "
  922.             AnsiPos 8, 12
  923.             Print " @X0C   More then @X0E600 @X0CFiles in Dirlist - Cutting down to 600 Lines    "
  924.             AnsiPos 8, 13
  925.             Print "                                                                      "
  926.             PROC012(1, 23)
  927.         Endif
  928.     Endif
  929.     :LABEL021
  930.     TSTRING001(INTEGER018 + 2) = ""
  931.     FClose 1
  932.     Goto LABEL026
  933.     :LABEL022
  934.     Inc INTEGER022
  935.     AnsiPos 32, 22
  936.     Print INTEGER022
  937.     Return
  938.     :LABEL023
  939.     If (STRING050 == "") Then
  940.         AnsiPos 43, 10
  941.         If (INTEGER021 == 1) Print "@X03-"
  942.         If (INTEGER021 == 2) Print "@X0B-"
  943.         If (INTEGER021 == 5) Print "@X03/"
  944.         If (INTEGER021 == 6) Print "@X0B/"
  945.         If (INTEGER021 == 9) Print "@X03|"
  946.         If (INTEGER021 == 10) Print "@X0B|"
  947.         If (INTEGER021 == 14) Print "@X03\"
  948.         If (INTEGER021 == 15) Print "@X0B\"
  949.         If (INTEGER021 <= 19) Then
  950.             Inc INTEGER021
  951.             Goto LABEL024
  952.         Endif
  953.         INTEGER021 = 1
  954.     Endif
  955.     :LABEL024
  956.     Return
  957.     :LABEL025
  958.     FDGet STRING051
  959.     STRING051 = StripAtx(STRING051)
  960.     STRING052 = Left(STRING051, 12)
  961.     STRING052 = Strip(STRING052, " ")
  962.     Gosub LABEL023
  963.     If (STRING052 <> "") Then
  964.         STRING052 = Strip(Mid(STRING051, 13, 9), " ")
  965.         If ((Mid(STRING051, 22, 2) == "  ") && (STRING052 == String(S2I(STRING052, 10)))) Then
  966.             Goto LABEL019
  967.         Endif
  968.     Endif
  969.     BOOLEAN022 = Ferr(1)
  970.     If (BOOLEAN022) Goto LABEL021
  971.     Goto LABEL025
  972.     :LABEL026
  973.     If (((TSTRING001(2) == "") && (STRING050 <> "")) && (BOOLEAN002 == 1)) Then
  974.         AnsiPos 1, 23
  975.         Print "@X0C No descriptions matched the text you searched for. Reading all files...     "
  976.         Delay 15
  977.         STRING050 = ""
  978.         Goto LABEL017
  979.     Endif
  980.     If (BOOLEAN002 == 1) Then
  981.         INTEGER019 = 2
  982.         While (TSTRING001(INTEGER019) <> "") Do
  983.             INTEGER020 = 0
  984.             While (TSTRING003(INTEGER020) <> "") Do
  985.                 If (Strip(Left(TSTRING001(INTEGER019), 12), " ") == TSTRING003(INTEGER020)) Then
  986.                     If (GrafMode() == "A") Then
  987.                         TSTRING001(INTEGER019) = "@X0B-" + TSTRING001(INTEGER019) + "@X07"
  988.                         Goto LABEL027
  989.                     Endif
  990.                     TSTRING001(INTEGER019) = "@X0B" + TSTRING001(INTEGER019) + "@X07"
  991.                 Endif
  992.                 :LABEL027
  993.                 Inc INTEGER020
  994.             EndWhile
  995.             Inc INTEGER019
  996.         EndWhile
  997.     Endif
  998.  
  999.     EndProc
  1000.  
  1001.  
  1002. ;------------------------------------------------------------------------------
  1003.  
  1004.     Procedure PROC020(String STRING054, Boolean BOOLEAN023)
  1005.  
  1006.     String   STRING055
  1007.     String   STRING056
  1008.     Boolean  BOOLEAN024
  1009.     Integer  INTEGER023
  1010.  
  1011.     FOpen 5, STRING054, 2, 0
  1012.     :LABEL028
  1013.     While (BOOLEAN024 == 0) Do
  1014.         FGet 5, STRING056
  1015.         PrintLn STRING056
  1016.         BOOLEAN024 = Ferr(5)
  1017.         Inc INTEGER023
  1018.         If ((INTEGER023 == 23) && (BOOLEAN024 == 0)) Then
  1019.             AnsiPos 1, 23
  1020.             ClrEol
  1021.             AnsiPos 1, 23
  1022.             Print "@X0F Press any Key to continue, or ""@X0EN@X0F"" to stop viewing...@X07"
  1023.             STRING055 = ""
  1024.             While (STRING055 == "") Do
  1025.                 STRING055 = Upper(Inkey())
  1026.             EndWhile
  1027.             If (STRING055 == "N") BOOLEAN024 = 1
  1028.             INTEGER023 = 1
  1029.             AnsiPos 1, 23
  1030.             ClrEol
  1031.             AnsiPos 1, 23
  1032.             PrintLn STRING056
  1033.         Endif
  1034.     EndWhile
  1035.     If (BOOLEAN024) Goto LABEL029
  1036.     Goto LABEL028
  1037.     :LABEL029
  1038.     FClose 5
  1039.     If (BOOLEAN023 == 1) Then
  1040.         If (STRING055 <> "N") PROC012(GetX(), GetY())
  1041.     Endif
  1042.  
  1043.     EndProc
  1044.  
  1045.  
  1046. ;------------------------------------------------------------------------------
  1047.  
  1048.     Procedure PROC021(String STRING057, String STRING058, Integer INTEGER024)
  1049.  
  1050.     String   STRING059
  1051.     String   STRING060
  1052.     String   STRING061
  1053.     String   STRING062
  1054.     String   STRING063
  1055.     Boolean  BOOLEAN025
  1056.     Boolean  BOOLEAN026
  1057.  
  1058.     STRING059 = INTEGER003
  1059.     STRING060 = "Sysop"
  1060.     STRING061 = "@X0CO-File nuked @X07(" + String(INTEGER024) + ") bytes for (" + STRING058 + ")"
  1061.     STRING062 = "R"
  1062.     BOOLEAN025 = 0
  1063.     BOOLEAN026 = 0
  1064.     STRING063 = PPEPath() + "DISP\NUKE.MES"
  1065.     Message STRING059, STRING057, STRING060, STRING061, STRING062, 0, BOOLEAN025, BOOLEAN026, STRING063
  1066.  
  1067.     EndProc
  1068.  
  1069.  
  1070. ;------------------------------------------------------------------------------
  1071.  
  1072.     Procedure PROC022(String STRING064, Integer INTEGER025)
  1073.  
  1074.     If (U_RecNum(STRING064) == -1) Then
  1075.         PrintLn "@X07User:@X0B ", STRING064, "@X07 Not found on system. Cannot remove credit."
  1076.     Else
  1077.         GetAltUser U_RecNum(STRING064)
  1078.         AdjTUBytes INTEGER025
  1079.         PutUser
  1080.     Endif
  1081.  
  1082.     EndProc
  1083.  
  1084.  
  1085. ;------------------------------------------------------------------------------
  1086.  
  1087.     Procedure PROC023(Boolean BOOLEAN027, Boolean BOOLEAN028)
  1088.  
  1089.     String   STRING065
  1090.     String   STRING066
  1091.     String   STRING067
  1092.     String   STRING068
  1093.     Boolean  BOOLEAN029
  1094.     Integer  INTEGER026
  1095.  
  1096.     INTEGER026 = 1
  1097.     BOOLEAN029 = 1
  1098.     Cls
  1099.     :LABEL030
  1100.     STRING068 = ReadLine(PPEPath() + "WORK\NUKEINFO." + String(PcbNode()), INTEGER026)
  1101.     If (Strip(STRING068, " ") == "") Goto LABEL031
  1102.     Tokenize STRING068
  1103.     STRING065 = GetToken()
  1104.     STRING065 = Replace(STRING065, "_", " ")
  1105.     STRING066 = GetToken()
  1106.     STRING067 = GetToken()
  1107.     If (BOOLEAN028) PrintLn "@X07", INTEGER026, "@X0F Nuking            :@X07 ", STRING067, "  @X0FFile: @X07", STRING066, "  @X0FUser:@X07 ", STRING065
  1108.     If (BOOLEAN027) PrintLn "@X07", INTEGER026, "@X0F Sending message to:@X07 ", STRING065
  1109.     If (!BOOLEAN028) PrintLn "@X07", INTEGER026, " @X0Ffor File          :@X07 ", STRING066
  1110.     PrintLn "@X08---------------------------------------------------------------------------"
  1111.     Delay 2
  1112.     If (BOOLEAN027) PROC021(STRING065, STRING066, STRING067)
  1113.     If (BOOLEAN028) PROC022(STRING065, STRING067)
  1114.     Inc INTEGER026
  1115.     Goto LABEL030
  1116.     :LABEL031
  1117.     PROC012(1, 24)
  1118.     If (BOOLEAN029) Goto LABEL032
  1119.     Cls
  1120.     AnsiPos 1, 1
  1121.     Print " All Uploaders were not found... Some users did not get nuked!"
  1122.     PROC012(1, 23)
  1123.     :LABEL032
  1124.  
  1125.     EndProc
  1126.  
  1127.     :LABEL033
  1128.     BOOLEAN002 = 0
  1129.     BOOLEAN004 = 0
  1130.     BOOLEAN007 = 0
  1131.     BOOLEAN005 = 0
  1132.     BOOLEAN013 = 0
  1133.     STRING005 = PPEPath() + "OFILE.CFG"
  1134.     If (!Exist(PPEPath() + "WORK\NUL")) MkDir PPEPath() + "WORK"
  1135.     If (!Exist(PPEPath() + "DISP\NUL")) MkDir PPEPath() + "DISP"
  1136.     If (Exist(STRING005)) Goto LABEL034
  1137.     PrintLn "OFILE.CFG does not exist! Please Create one With OCONFIG.EXE"
  1138.     PROC012(1, 23)
  1139.     Goto LABEL040
  1140.     :LABEL034
  1141.     Cls
  1142.     Print "@X01 ░▒▓@X10              O-FILE v1.8a @X1Fby @X1CSlob-Trot Software Oy Ab               @X01▓▒░@X07"
  1143.     AnsiPos 1, 1
  1144.     Delay 1
  1145.     Print "@X01 ░▒▓@X18              O-FILE v1.8a "
  1146.     AnsiPos 1, 1
  1147.     Delay 1
  1148.     Print "@X01 ░▒▓@X13              O-FILE v1.8a "
  1149.     AnsiPos 1, 1
  1150.     Delay 1
  1151.     Print "@X01 ░▒▓@X1B              O-FILE v1.8a "
  1152.     AnsiPos 1, 1
  1153.     Delay 1
  1154.     Print "@X01 ░▒▓@X1F              O-FILE v1.8a "
  1155.     AnsiPos 1, 1
  1156.     Delay 4
  1157.     Print "@X07"
  1158.     If (Upper(ReadLine(STRING005, 1)) == "YES") BOOLEAN004 = 1
  1159.     If (Upper(ReadLine(STRING005, 2)) == "YES") BOOLEAN005 = 1
  1160.     If (Upper(ReadLine(STRING005, 3)) == "YES") BOOLEAN007 = 1
  1161.     If (Upper(ReadLine(STRING005, 4)) == "YES") BOOLEAN008 = 1
  1162.     If (Upper(ReadLine(STRING005, 5)) == "YES") BOOLEAN010 = 1
  1163.     If (Upper(ReadLine(STRING005, 6)) == "YES") BOOLEAN009 = 1
  1164.     If (Upper(ReadLine(STRING005, 7)) == "YES") BOOLEAN012 = 1
  1165.     INTEGER003 = ToInteger(ReadLine(STRING005, 8))
  1166.     If (Upper(ReadLine(STRING005, 9)) == "YES") BOOLEAN013 = 1
  1167.     If (BOOLEAN012) Then
  1168.         Log "O-File Begin " + Left(Time(), 5), 0
  1169.     Endif
  1170.     STRING018 = 0
  1171.     STRING019 = 1
  1172.     STRING020 = 0
  1173.     STRING021 = 1
  1174.     :LABEL035
  1175.     If (StackErr() == 1) Then
  1176.         AnsiPos 1, 1
  1177.         PrintLn "@X0CA StackERROR has occured. Please Inform Slob-Trot Software About this problem!"
  1178.         PROC012(1, 23)
  1179.     Endif
  1180.     Cls
  1181.     STRING016 = STRING018
  1182.     STRING017 = STRING019
  1183.     INTEGER001 = FUNCTION001()
  1184.     STRING018 = STRING016
  1185.     STRING019 = STRING017
  1186.     If (BOOLEAN003 == 1) Goto LABEL040
  1187.     :LABEL036
  1188.     INTEGER002 = INTEGER001
  1189.     PROC001(INTEGER002)
  1190.     PROC002(STRING011, STRING012, STRING013)
  1191.     If (BOOLEAN001) Goto LABEL035
  1192.     :LABEL037
  1193.     STRING015 = ""
  1194.     STRING015 = Upper(FUNCTION002(STRING012, STRING013))
  1195.     If (BOOLEAN001) Goto LABEL036
  1196.     :LABEL038
  1197.     STRING014 = FUNCTION005(STRING015)
  1198.     STRING015 = ""
  1199.     If (STRING014 == "B") Goto LABEL037
  1200.     If (STRING014 == "C") Then
  1201.         PROC003()
  1202.         If (BOOLEAN006) Goto LABEL038
  1203.     Endif
  1204.     If (STRING014 == "M") Then
  1205.         PROC004()
  1206.         If (BOOLEAN006) Goto LABEL038
  1207.     Endif
  1208.     If (STRING014 == "D") Then
  1209.         PROC005()
  1210.         If (BOOLEAN001 == 1) Then
  1211.             STRING015 = ""
  1212.             Goto LABEL038
  1213.         Endif
  1214.     Endif
  1215.     If (STRING014 == "N") Then
  1216.         PROC006()
  1217.         If (BOOLEAN001 == 1) Then
  1218.             STRING015 = ""
  1219.             Goto LABEL038
  1220.         Endif
  1221.     Endif
  1222.     If (STRING014 == "Q") Then
  1223.         BOOLEAN001 = 1
  1224.         Goto LABEL039
  1225.     Endif
  1226.     :LABEL039
  1227.     Cls
  1228.     If (BOOLEAN001 == 1) Then
  1229.         AnsiPos 18, 12
  1230.         Print "@X08 Exitcode detected, unflagging and returning..."
  1231.     Endif
  1232.     TSTRING003(0) = ""
  1233.     BOOLEAN002 = 0
  1234.     BOOLEAN003 = 0
  1235.     BOOLEAN001 = 0
  1236.     BOOLEAN011 = 0
  1237.     Delay 10
  1238.     Goto LABEL035
  1239.     :LABEL040
  1240.     StartDisp 2
  1241.     If (BOOLEAN012) Then
  1242.         Log "O-File End   " + Left(Time(), 5), 0
  1243.     Endif
  1244.     Cls
  1245.     PrintLn "@X01 ░▒▓@X1F       Thank you for using @X1EO-File@X1F by Slob-Trot Software Oy Ab         @X01▓▒░@X07 "
  1246.     Newline
  1247.     ClrEol
  1248.     End
  1249.  
  1250. ;------------------------------------------------------------------------------
  1251.  
  1252.     Procedure PROC002(String STRING069, Var String STRING070, Var String STRING071)
  1253.  
  1254.     String   STRING072
  1255.     String   STRING073
  1256.     String   STRING074
  1257.     String   STRING075
  1258.     String   STRING076
  1259.     String   STRING077
  1260.     Word     WORD006
  1261.     Word     WORD007
  1262.     Integer  INTEGER027
  1263.     Integer  INTEGER028
  1264.     Integer  INTEGER029
  1265.     Integer  INTEGER030
  1266.     Boolean  BOOLEAN030
  1267.     Byte     BYTE012
  1268.  
  1269.     INTEGER029 = 0
  1270.     If (STRING022 == STRING069) Then
  1271.         WORD006 = STRING020
  1272.         WORD007 = STRING021
  1273.     Else
  1274.         WORD006 = 0
  1275.         WORD007 = 1
  1276.     Endif
  1277.     STRING022 = STRING069
  1278.     INTEGER028 = 0
  1279.     INTEGER027 = FileInf(STRING069, 4)
  1280.     INTEGER028 = INTEGER027 / 96
  1281.     If (((INTEGER028 < 1) && (STRING007 == "")) && (STRING009 == "")) Then
  1282.         AnsiPos 1, 24
  1283.         SaveScrn
  1284.         AnsiPos 15, 9
  1285.         Print "@X0C┌──────────────────────────────────────────────────┐"
  1286.         AnsiPos 15, 10
  1287.         Print "@X0C│ There are no File Directories in that Conference │"
  1288.         AnsiPos 15, 11
  1289.         Print "@X0C└──────────────────────────────────────────────────┘"
  1290.         PROC012(1, 23)
  1291.         AnsiPos 1, 1
  1292.         RestScrn
  1293.         BOOLEAN001 = 1
  1294.         Goto LABEL053
  1295.     Endif
  1296.     Cls
  1297.     FOpen 2, STRING069, 2, 0
  1298.     While (INTEGER029 <= INTEGER028 - 1) Do
  1299.         FSeek 2, INTEGER029 * 96 + 60, 0
  1300.         FRead 2, TSTRING001(INTEGER029), 35
  1301.         STRING077 = I2S(INTEGER029 + 1, 10)
  1302.         While ((Len(STRING077) < 4)) STRING077 = STRING077 + " "
  1303.         TSTRING001(INTEGER029) = STRING077 + TSTRING001(INTEGER029)
  1304.         Inc INTEGER029
  1305.     EndWhile
  1306.     FClose 2
  1307.     If (STRING007 <> "") Then
  1308.         INTEGER028 = INTEGER028 + 1
  1309.         TSTRING001(INTEGER029) = "U   " + STRING006 + " Public Uploads"
  1310.         Inc INTEGER029
  1311.     Endif
  1312.     If (STRING009 <> "") Then
  1313.         INTEGER028 = INTEGER028 + 1
  1314.         TSTRING001(INTEGER029) = "P   " + STRING006 + " Private Uploads"
  1315.         Inc INTEGER029
  1316.     Endif
  1317.     TSTRING001(INTEGER029) = ""
  1318.     AnsiPos 1, 1
  1319.     If (BOOLEAN002 == 1) Then
  1320.         PrintLn "@X0E─═ @X03Select destination Filearea for the flagged files @X0E─═("
  1321.     Else
  1322.         PrintLn "@X0E─═ @X03Select Filearea to view @X0E─═══════════════════════════("
  1323.     Endif
  1324.     AnsiPos 57, 1
  1325.     Print "@X03", INTEGER002, "@X0E)@X03 ", Left(STRING006, 18)
  1326.     AnsiPos 1, 22
  1327.     PrintLn "@X0E══════════════════════════════════════════════════════════════════════════════"
  1328.     AnsiPos 1, 23
  1329.     If (BOOLEAN002 == 1) Then
  1330.         Print "@X0FDestination Dir: ", Chr(24), "@X08/@X0F", Chr(25), "@X08/@X0FPGUP@X08/@X0FPGDOWN@X08/@X0FHOME@X08/@X0FEND@X08/@X0FNUM@X08/@X0FH - (Enter)selects - (ESC)quits"
  1331.     Else
  1332.         Print "@X0FSelect Directory: ", Chr(24), "@X08/@X0F", Chr(25), "@X08/@X0FPGUP@X08/@X0FPGDOWN@X08/@X0FHOME@X08/@X0FEND@X08/@X0FNUM - (Enter) selects - (ESC) quits"
  1333.     Endif
  1334.     BOOLEAN030 = 1
  1335.     :LABEL041
  1336.     If (BOOLEAN030) Goto LABEL048
  1337.     :LABEL042
  1338.     Goto LABEL046
  1339.     :LABEL043
  1340.     STRING074 = ""
  1341.     While (STRING074 == "") Do
  1342.         STRING074 = Upper(Inkey())
  1343.     EndWhile
  1344.     Goto LABEL047
  1345.     :LABEL044
  1346.     If ((((((((((STRING074 == "UP") || (STRING074 == "DOWN")) || (STRING074 == "HOME")) || (STRING074 == "END")) || (STRING074 == "PGUP")) || (STRING074 == "PGDN")) || (STRING074 == "A")) || (STRING074 == "Z")) || (STRING074 == "S")) || (STRING074 == "X")) Then
  1347.         PROC011(STRING074, INTEGER028, WORD006, WORD007, BOOLEAN030)
  1348.     Endif
  1349.     If ((((((((((((STRING074 == "1") || (STRING074 == "2")) || (STRING074 == "3")) || (STRING074 == "4")) || (STRING074 == "5")) || (STRING074 == "6")) || (STRING074 == "7")) || (STRING074 == "8")) || (STRING074 == "9")) || (STRING074 == "0")) || (STRING074 == Upper("p"))) || (STRING074 == Upper("u"))) Then
  1350.         KbdStuff STRING074
  1351.         STRING076 = FUNCTION006(ToInteger(STRING077))
  1352.         If (Upper(STRING076) == "") Then
  1353.             AnsiPos 1, 23
  1354.             If (BOOLEAN002 == 1) Then
  1355.                 Print "@X0FDestination Dir: ", Chr(24), "@X08/@X0F", Chr(25), "@X08/@X0FPGUP@X08/@X0FPGDOWN@X08/@X0FHOME@X08/@X0FEND@X08/@X0FNUM@X08/@X0FH - (Enter)selects - (ESC)quits"
  1356.                 Goto LABEL045
  1357.             Endif
  1358.             Print "@X0FSelect Directory: ", Chr(24), "@X08/@X0F", Chr(25), "@X08/@X0FPGUP@X08/@X0FPGDOWN@X08/@X0FHOME@X08/@X0FEND@X08/@X0FNUM - (Enter) selects - (ESC) quits"
  1359.             :LABEL045
  1360.             Goto LABEL041
  1361.         Endif
  1362.         STRING077 = STRING076
  1363.         If (STRING076 == "P") STRING077 = INTEGER028
  1364.         If (STRING076 == "U") STRING077 = INTEGER028 - 1
  1365.         If (INTEGER028 < 20) Then
  1366.             WORD006 = 0
  1367.             WORD007 = STRING077
  1368.         ElseIf (ToInteger(STRING077) - 1 + 20 > INTEGER028) Then
  1369.             WORD006 = INTEGER028 - 20
  1370.             WORD007 = 20 - INTEGER028 - ToInteger(STRING077)
  1371.         Else
  1372.             WORD006 = ToInteger(STRING077) - 1
  1373.             WORD007 = 1
  1374.         Endif
  1375.         Select Case (Upper(STRING076))
  1376.             Case "P"
  1377.                 STRING023 = TSTRING001(INTEGER028 - 1)
  1378.                 STRING072 = STRING009
  1379.                 STRING073 = STRING010
  1380.             Case "U"
  1381.                 STRING023 = TSTRING001(INTEGER028 - 2)
  1382.                 STRING072 = STRING007
  1383.                 STRING073 = STRING008
  1384.             Case Else
  1385.                 STRING023 = TSTRING001(ToInteger(STRING076) - 1)
  1386.                 FOpen 3, STRING069, 2, 0
  1387.                 FSeek 3, (ToInteger(STRING076) - 1) * 96, 0
  1388.                 FRead 3, STRING072, 30
  1389.                 FSeek 3, (ToInteger(STRING076) - 1) * 96 + 30, 0
  1390.                 FRead 3, STRING073, 30
  1391.                 FClose 3
  1392.             Else
  1393.                 If (Upper(STRING074) == "H") Gosub LABEL050
  1394.                 If (STRING074 == Chr(13)) Goto LABEL049
  1395.                 If (STRING074 == "RIGHT") Goto LABEL049
  1396.                 If (STRING074 == Chr(27)) Goto LABEL051
  1397.                 If (STRING074 == "LEFT") Goto LABEL051
  1398.                 Goto LABEL041
  1399.                 AnsiPos 1, 24
  1400.                 SaveScrn
  1401.                 AnsiPos 15, 9
  1402.                 Print "@X0C┌──────────────────────────────────────────────────┐"
  1403.                 AnsiPos 15, 10
  1404.                 Print "@X0C│ That was not a valid directory number, try again │"
  1405.                 AnsiPos 15, 11
  1406.                 Print "@X0C└──────────────────────────────────────────────────┘"
  1407.                 PROC012(1, 23)
  1408.                 AnsiPos 1, 1
  1409.                 RestScrn
  1410.                 Gosub LABEL048
  1411.                 Return
  1412.                 :LABEL046
  1413.                 STRING075 = ScrText(1, WORD007 + 1, 78, 0)
  1414.                 AnsiPos 1, WORD007 + 1
  1415.                 If (GrafMode() == "A") Then
  1416.                     Print " ", Upper(STRING075)
  1417.                 Else
  1418.                     Print "@X1F", STRING075
  1419.                 Endif
  1420.                 AnsiPos 1, WORD007 + 1
  1421.                 Goto LABEL043
  1422.                 :LABEL047
  1423.                 STRING075 = TSTRING001(WORD006 + WORD007 - 1)
  1424.                 STRING075 = StripAtx(STRING075)
  1425.                 AnsiPos 1, WORD007 + 1
  1426.                 Print "@X07", STRING075
  1427.                 ClrEol
  1428.                 Goto LABEL044
  1429.                 :LABEL048
  1430.                 BYTE012 = 1
  1431.                 Color 7
  1432.                 While ((BYTE012 < 21) && (TSTRING001(WORD006 + BYTE012 - 1) <> "")) Do
  1433.                     AnsiPos 1, BYTE012 + 1
  1434.                     ClrEol
  1435.                     AnsiPos 1, BYTE012 + 1
  1436.                     Print TSTRING001(WORD006 + BYTE012 - 1)
  1437.                     Inc BYTE012
  1438.                 EndWhile
  1439.                 BOOLEAN030 = 0
  1440.                 Goto LABEL042
  1441.                 :LABEL049
  1442.                 STRING023 = TSTRING001(WORD006 + WORD007 - 1)
  1443.                 INTEGER030 = WORD006 + WORD007 - 1
  1444.                 Select Case (INTEGER030)
  1445.                     Case INTEGER028 - 1
  1446.                         STRING072 = STRING009
  1447.                         STRING073 = STRING010
  1448.                     Case INTEGER028 - 2
  1449.                         STRING072 = STRING007
  1450.                         STRING073 = STRING008
  1451.                     Case Else
  1452.                         FOpen 3, STRING069, 2, 0
  1453.                         FSeek 3, INTEGER030 * 96, 0
  1454.                         FRead 3, STRING072, 30
  1455.                         FSeek 3, INTEGER030 * 96 + 30, 0
  1456.                         FRead 3, STRING073, 30
  1457.                         FClose 3
  1458.                 End Select
  1459.                 Goto LABEL052
  1460.                 :LABEL050
  1461.                 AnsiPos 1, 24
  1462.                 SaveScrn
  1463.                 AnsiPos 1, 2
  1464.                 ClrEol
  1465.                 Newline
  1466.                 PrintLn "@X0B Help on selecting filearea                                                "
  1467.                 ClrEol
  1468.                 Newline
  1469.                 PrintLn "@X03 After Selecting a filearea the files in that area will be listed.         "
  1470.                 ClrEol
  1471.                 Newline
  1472.                 PrintLn " If you have files flagged you should select the Destination Filearea for  "
  1473.                 PrintLn " the files you have flagged.                            "
  1474.                 ClrEol
  1475.                 Newline
  1476.                 PrintLn " To move the selector you can use the following keys:                      "
  1477.                 PrintLn "@X0B ArrowDown or Z = @X03Moves the selector one item down                         "
  1478.                 PrintLn "@X0B ArrowUp   or A = @X03Moves the selector one item up                           "
  1479.                 PrintLn "@X0B PageDown  or X = @X03Moves the selector one page down, or to the last onscreen"
  1480.                 PrintLn "@X0B PageUp    or S = @X03Moves the selector one page up, or to the first onscreen "
  1481.                 PrintLn "@X0B Home           = @X03Moves the selector to the first item in the list         "
  1482.                 PrintLn "@X0B End            = @X03Moves the selector to the last item in the list          "
  1483.                 ClrEol
  1484.                 Newline
  1485.                 PrintLn " To select an item press @X0BReturn @X03or @X0BArrow Right@X03, or type the line number. To"
  1486.                 PrintLn " Exit press @X0BEsc @X03or @X0BArrow Left@X03. If you have files flagged @X0BEsc@X03 will return   "
  1487.                 PrintLn " you to the previous list. You can punch in the line number directly if you"
  1488.                 PrintLn " want to be quick.                                                         "
  1489.                 PROC012(1, 23)
  1490.                 AnsiPos 1, 1
  1491.                 RestScrn
  1492.                 Return
  1493.                 :LABEL051
  1494.                 BOOLEAN001 = 1
  1495.                 Goto LABEL053
  1496.             Endif
  1497.     End Select
  1498.     :LABEL052
  1499.     STRING070 = STRING072
  1500.     STRING071 = STRING073
  1501.     BOOLEAN001 = 0
  1502.     :LABEL053
  1503.     STRING020 = WORD006
  1504.     STRING021 = WORD007
  1505.  
  1506.     EndProc
  1507.  
  1508.  
  1509. ;------------------------------------------------------------------------------
  1510.  
  1511.     Function FUNCTION002(String STRING078, String STRING079) String
  1512.  
  1513.     String   STRING081
  1514.     String   STRING082
  1515.     String   STRING083
  1516.     String   STRING084
  1517.     String   STRING085
  1518.     String   STRING086
  1519.     String   STRING087
  1520.     Integer  INTEGER031
  1521.     Integer  INTEGER032
  1522.     Integer  INTEGER033
  1523.     Word     WORD008
  1524.     Word     WORD009
  1525.     Word     WORD010
  1526.     Boolean  BOOLEAN031
  1527.     Boolean  BOOLEAN032
  1528.     Integer  INTEGER034
  1529.     Integer  INTEGER035
  1530.  
  1531.     STRING083 = ""
  1532.     INTEGER031 = 0
  1533.     WORD009 = 0
  1534.     WORD010 = 1
  1535.     WORD008 = 0
  1536.     STRING086 = ReadLine(PCBDat(), 95)
  1537.     STRING087 = ""
  1538.     If (BOOLEAN002) Then
  1539.         While (TSTRING003(INTEGER031) <> "") Do
  1540.             Inc INTEGER031
  1541.         EndWhile
  1542.     Endif
  1543.     :LABEL054
  1544.     PROC019(STRING078, STRING079, STRING087)
  1545.     WORD009 = 0
  1546.     WORD010 = 1
  1547.     WORD008 = 0
  1548.     While (TSTRING001(WORD008) <> "") Do
  1549.         Inc WORD008
  1550.     EndWhile
  1551.     WORD008 = WORD008 - 2
  1552.     If (TSTRING001(2) == "") Goto LABEL069
  1553.     :LABEL055
  1554.     Cls
  1555.     AnsiPos 1, 1
  1556.     Print "@X0E─═ @X03Viewing files in @X0E:@X03", Left(Right(STRING023, 36), 28), "@X0E ─══(                        "
  1557.     AnsiPos 1, 22
  1558.     Print "@X0E════════════════════════════════════════════════════════════════════════("
  1559.     AnsiPos 74, 22
  1560.     Print "@X0300@X08/@X03", WORD008, "@X0E)"
  1561.     PROC009(INTEGER031, 74, 22)
  1562.     AnsiPos 1, 23
  1563.     Print "@X0FKeys: ", Chr(24), "@X08/@X0F", Chr(25), "@X08/@X0FPGUP@X08/@X0FPGDOWN@X08/@X0FHOME@X08/@X0FEND@X08/@X0FC@X08/@X0FM@X08/@X0FD@X08/@X0FV@X08/@X08@X0FE@X08/@X0FF@X08/@X0FH  (Enter)Flags/UnFlags  (ESC)Ready"
  1564.     Gosub LABEL063
  1565.     :LABEL056
  1566.     Gosub LABEL061
  1567.     STRING082 = ""
  1568.     While (STRING082 == "") Do
  1569.         STRING082 = Upper(Inkey())
  1570.     EndWhile
  1571.     Gosub LABEL062
  1572.     If ((((((((((STRING082 == "UP") || (STRING082 == "DOWN")) || (STRING082 == "HOME")) || (STRING082 == "END")) || (STRING082 == "PGUP")) || (STRING082 == "PGDN")) || (STRING082 == "A")) || (STRING082 == "Z")) || (STRING082 == "S")) || (STRING082 == "X")) Then
  1573.         PROC011(STRING082, WORD008, WORD009, WORD010, BOOLEAN031)
  1574.     Endif
  1575.     If (BOOLEAN031) Then
  1576.         Gosub LABEL063
  1577.         BOOLEAN031 = 0
  1578.     Endif
  1579.     If (STRING082 == "H") Gosub LABEL070
  1580.     If (STRING082 == "F") Goto LABEL067
  1581.     If (STRING082 == "R") Gosub LABEL068
  1582.     If (STRING082 == "C") Then
  1583.         If (TSTRING003(0) <> "") Then
  1584.             STRING084 = FUNCTION004(" Do you want to copy the files (y/n):            ")
  1585.             If (STRING084 == "Y") Then
  1586.                 STRING083 = "C"
  1587.                 Goto LABEL071
  1588.             Endif
  1589.             Goto LABEL057
  1590.         Endif
  1591.         AnsiPos 56, 1
  1592.         Print " NO FLAGGED FILES"
  1593.         ClrEol
  1594.     Endif
  1595.     :LABEL057
  1596.     If (STRING082 == "M") Then
  1597.         If (TSTRING003(0) <> "") Then
  1598.             STRING084 = FUNCTION004(" Do you want to Move the files (y/n):            ")
  1599.             If (STRING084 == "Y") Then
  1600.                 STRING083 = "M"
  1601.                 Goto LABEL071
  1602.             Endif
  1603.             Goto LABEL058
  1604.         Endif
  1605.         AnsiPos 56, 1
  1606.         Print " NO FLAGGED FILES"
  1607.         ClrEol
  1608.     Endif
  1609.     :LABEL058
  1610.     If (STRING082 == "N") Then
  1611.         If (TSTRING003(0) <> "") Then
  1612.             STRING084 = FUNCTION004(" Do you want to NUKE the files (y/n):            ")
  1613.             If (STRING084 == "Y") Then
  1614.                 STRING083 = "N"
  1615.                 Goto LABEL071
  1616.             Endif
  1617.             Goto LABEL059
  1618.         Endif
  1619.         AnsiPos 56, 1
  1620.         Print " NO FLAGGED FILES"
  1621.         ClrEol
  1622.     Endif
  1623.     :LABEL059
  1624.     If (STRING082 == "D") Then
  1625.         If (TSTRING003(0) <> "") Then
  1626.             STRING084 = FUNCTION004(" Do you want to DELETE the files (Y/N)           ")
  1627.             If (STRING084 == "Y") Then
  1628.                 STRING083 = "D"
  1629.                 Goto LABEL071
  1630.             Endif
  1631.             Goto LABEL060
  1632.         Endif
  1633.         AnsiPos 56, 1
  1634.         Print " NO FLAGGED FILES"
  1635.         ClrEol
  1636.     Endif
  1637.     :LABEL060
  1638.     If (STRING082 == "T") Then
  1639.         STRING084 = FUNCTION004(" Do you want to VIEW the file (Y/N)              ")
  1640.         If (STRING084 == "Y") Then
  1641.             Inc WORD010
  1642.             INTEGER032 = WORD010
  1643.             ScrFile WORD010, STRING081
  1644.             If (WORD010 <> INTEGER032) Then
  1645.                 WORD010 = INTEGER032
  1646.                 AnsiPos 1, WORD010
  1647.                 STRING081 = StripAtx(Strip(Left(TSTRING001(WORD009 + WORD010), 12), " "))
  1648.             Endif
  1649.             Dec WORD010
  1650.             AnsiPos 1, 24
  1651.             SaveScrn
  1652.             Cls
  1653.             TSTRING002(0) = Strip(TSTRING002(0), " ")
  1654.             Shell 1, INTEGER033, STRING086, TSTRING002(0) + STRING081
  1655.             PROC020("PCBVIEW.TXT", 1)
  1656.             AnsiPos 1, 1
  1657.             RestScrn
  1658.         Endif
  1659.     Endif
  1660.     If (STRING082 == "V") Then
  1661.         Inc WORD010
  1662.         INTEGER032 = WORD010
  1663.         ScrFile WORD010, STRING081
  1664.         If (WORD010 <> INTEGER032) Then
  1665.             WORD010 = INTEGER032
  1666.             AnsiPos 1, WORD010
  1667.             STRING081 = StripAtx(Strip(Left(TSTRING001(WORD009 + WORD010), 12), " "))
  1668.         Endif
  1669.         Dec WORD010
  1670.         PROC008(STRING081, STRING078)
  1671.         Goto LABEL055
  1672.     Endif
  1673.     If (STRING082 == "E") Then
  1674.         AnsiPos 1, 24
  1675.         SaveScrn
  1676.         PROC017(WORD009 + WORD010 + 1)
  1677.         AnsiPos 1, 1
  1678.         RestScrn
  1679.         AnsiPos 1, WORD010 + 1
  1680.         Print TSTRING001(WORD009 + WORD010 + 1)
  1681.     Endif
  1682.     If (STRING082 == Chr(13)) Gosub LABEL064
  1683.     If (STRING082 == Chr(32)) Gosub LABEL064
  1684.     If (STRING082 == Chr(27)) Goto LABEL071
  1685.     If (STRING082 == "LEFT") Goto LABEL071
  1686.     Goto LABEL056
  1687.     :LABEL061
  1688.     STRING085 = ScrText(1, WORD010 + 1, 78, 0)
  1689.     AnsiPos 1, WORD010 + 1
  1690.     If (GrafMode() == "A") Print " "
  1691.     If (Left(TSTRING001(WORD009 + WORD010 + 1), 1) == "@") Then
  1692.         Print "@X1E", STRING085
  1693.         AnsiPos 1, WORD010 + 1
  1694.     Else
  1695.         Print "@X1F", STRING085
  1696.         AnsiPos 1, WORD010 + 1
  1697.     Endif
  1698.     Return
  1699.     :LABEL062
  1700.     STRING085 = ScrText(1, WORD010 + 1, 78, 0)
  1701.     AnsiPos 1, WORD010 + 1
  1702.     If (Left(TSTRING001(WORD009 + WORD010 + 1), 1) == "@") Then
  1703.         Print TSTRING001(WORD009 + WORD010 + 1)
  1704.     Else
  1705.         Print "@X07", TSTRING001(WORD009 + WORD010 + 1)
  1706.     Endif
  1707.     ClrEol
  1708.     Return
  1709.     :LABEL063
  1710.     INTEGER034 = 1
  1711.     Color 7
  1712.     While ((INTEGER034 < 21) && (TSTRING001(WORD009 + INTEGER034 + 1) <> "")) Do
  1713.         If (Left(TSTRING001(WORD009 + INTEGER034 + 1), 1) == "@") Then
  1714.             AnsiPos 1, INTEGER034 + 1
  1715.             ClrEol
  1716.             AnsiPos 1, INTEGER034 + 1
  1717.             Print TSTRING001(WORD009 + INTEGER034 + 1)
  1718.         Else
  1719.             AnsiPos 1, INTEGER034 + 1
  1720.             ClrEol
  1721.             AnsiPos 1, INTEGER034 + 1
  1722.             Print TSTRING001(WORD009 + INTEGER034 + 1)
  1723.         Endif
  1724.         ClrEol
  1725.         Inc INTEGER034
  1726.     EndWhile
  1727.     Return
  1728.     :LABEL064
  1729.     STRING081 = ""
  1730.     Inc WORD010
  1731.     If (GrafMode() == "A") Then
  1732.         TSTRING001(WORD009 + WORD010) = StripStr(TSTRING001(WORD009 + WORD010), "@X0B-")
  1733.     Else
  1734.         TSTRING001(WORD009 + WORD010) = StripStr(TSTRING001(WORD009 + WORD010), "@X0B")
  1735.     Endif
  1736.     AnsiPos 1, WORD010
  1737.     INTEGER032 = WORD010
  1738.     Print TSTRING001(WORD009 + WORD010)
  1739.     ScrFile WORD010, STRING081
  1740.     If (WORD010 <> INTEGER032) Then
  1741.         STRING081 = ""
  1742.         WORD010 = INTEGER032
  1743.         AnsiPos 1, WORD010
  1744.         STRING081 = StripAtx(Strip(Left(TSTRING001(WORD009 + WORD010), 12), " "))
  1745.     Endif
  1746.     Dec WORD010
  1747.     BOOLEAN032 = 0
  1748.     INTEGER032 = 0
  1749.     While (INTEGER032 < INTEGER031) Do
  1750.         If (STRING081 == TSTRING003(INTEGER032)) Then
  1751.             BOOLEAN032 = 1
  1752.             TSTRING003(INTEGER032) = ""
  1753.         Endif
  1754.         Inc INTEGER032
  1755.     EndWhile
  1756.     If (BOOLEAN032) Goto LABEL065
  1757.     If (INTEGER031 >= 99) Then
  1758.         AnsiPos 1, 24
  1759.         SaveScrn
  1760.         AnsiPos 15, 9
  1761.         Print "@X0C┌─────────────────────────────────────────────────┐"
  1762.         AnsiPos 15, 10
  1763.         Print "@X0C│ You have flagged 99 files, and it is the limit! │"
  1764.         AnsiPos 15, 11
  1765.         Print "@X0C└─────────────────────────────────────────────────┘"
  1766.         PROC012(1, 23)
  1767.         AnsiPos 1, 1
  1768.         RestScrn
  1769.         Return
  1770.     Endif
  1771.     TSTRING003(INTEGER031) = STRING081
  1772.     AnsiPos 55, 1
  1773.     Print "@X09 ", TSTRING003(INTEGER031), " Flagged@X0F"
  1774.     ClrEol
  1775.     Inc INTEGER031
  1776.     PROC009(INTEGER031, 74, 22)
  1777.     If (GrafMode() == "A") Then
  1778.         TSTRING001(WORD009 + WORD010 + 1) = "@X0B-" + TSTRING001(WORD009 + WORD010 + 1) + "@X07"
  1779.     Else
  1780.         TSTRING001(WORD009 + WORD010 + 1) = "@X0B" + TSTRING001(WORD009 + WORD010 + 1) + "@X07"
  1781.     Endif
  1782.     Gosub LABEL062
  1783.     PROC011("DOWN", WORD008, WORD009, WORD010, BOOLEAN031)
  1784.     If (BOOLEAN031) Then
  1785.         Gosub LABEL063
  1786.         BOOLEAN031 = 1
  1787.     Endif
  1788.     Goto LABEL066
  1789.     :LABEL065
  1790.     INTEGER032 = 0
  1791.     While (INTEGER032 < INTEGER031) Do
  1792.         If ("" == TSTRING003(INTEGER032)) Then
  1793.             While (INTEGER032 < INTEGER031) Do
  1794.                 TSTRING003(INTEGER032) = TSTRING003(INTEGER032 + 1)
  1795.                 Inc INTEGER032
  1796.             EndWhile
  1797.         Endif
  1798.         Inc INTEGER032
  1799.     EndWhile
  1800.     If (GrafMode() == "A") Then
  1801.         TSTRING001(WORD009 + WORD010 + 1) = StripStr(TSTRING001(WORD009 + WORD010 + 1), "@X0B-")
  1802.         TSTRING001(WORD009 + WORD010 + 1) = StripAtx(TSTRING001(WORD009 + WORD010 + 1))
  1803.     Else
  1804.         TSTRING001(WORD009 + WORD010 + 1) = StripAtx(TSTRING001(WORD009 + WORD010 + 1))
  1805.     Endif
  1806.     Dec INTEGER031
  1807.     PROC009(INTEGER031, 74, 22)
  1808.     AnsiPos 55, 1
  1809.     Print " @X09", STRING081, "@X07 UnFlagged@X0E"
  1810.     ClrEol
  1811.     Gosub LABEL062
  1812.     PROC011("DOWN", WORD008, WORD009, WORD010, BOOLEAN031)
  1813.     If (BOOLEAN031) Then
  1814.         Gosub LABEL063
  1815.         BOOLEAN031 = 0
  1816.     Endif
  1817.     :LABEL066
  1818.     Return
  1819.     :LABEL067
  1820.     AnsiPos 1, 23
  1821.     ClrEol
  1822.     InputText "@X0B Enter criteria to include in search @X03", STRING087, 7, 20
  1823.     If (STRING087 == "") Then
  1824.         AnsiPos 1, 23
  1825.         ClrEol
  1826.         Print "@X0FKeys: ", Chr(24), "@X08/@X0F", Chr(25), "@X08/@X0FPGUP@X08/@X0FPGDOWN@X08/@X0FHOME@X08/@X0FEND@X08/@X0FC@X08/@X0FM@X08/@X0FD@X08/@X0FV@X08/@X08@X0FE@X08/@X0FF@X08/@X0FH  (Enter)Flags/UnFlags  (ESC)Ready"
  1827.         Gosub LABEL063
  1828.         Goto LABEL056
  1829.     Endif
  1830.     If (TSTRING003(0) <> "") BOOLEAN002 = 1
  1831.     Goto LABEL054
  1832.     :LABEL068
  1833.     STRING084 = FUNCTION004(" Read all files into filelist  (y/n):            ")
  1834.     If (STRING084 == "Y") Then
  1835.         If (TSTRING003(0) <> "") BOOLEAN002 = 1
  1836.         STRING087 = ""
  1837.         Goto LABEL054
  1838.     Endif
  1839.     Return
  1840.     :LABEL069
  1841.     AnsiPos 1, 22
  1842.     AnsiPos 1, 24
  1843.     SaveScrn
  1844.     AnsiPos 13, 9
  1845.     Print "@X0C┌──────────────────────────────────────────────────────┐"
  1846.     AnsiPos 13, 10
  1847.     Print "@X0C│ No files matching criteria, or no files in directory │"
  1848.     AnsiPos 13, 11
  1849.     Print "@X0C└──────────────────────────────────────────────────────┘"
  1850.     AnsiPos 1, 23
  1851.     AnsiPos 1, 1
  1852.     Delay 15
  1853.     RestScrn
  1854.     Goto LABEL071
  1855.     :LABEL070
  1856.     AnsiPos 1, 24
  1857.     SaveScrn
  1858.     AnsiPos 1, 2
  1859.     ClrEol
  1860.     Newline
  1861.     PrintLn "@X0B Help on: Flag files & edit file description                                  "
  1862.     ClrEol
  1863.     Newline
  1864.     PrintLn "@X03 You flag files for processing with @X0BReturn@X03 or @X0BSpace@X03. You can Unflag a file    "
  1865.     PrintLn " by pressing @X0BReturn@X03 or @X0BSpace@X03 again. The following functions are available:    "
  1866.     PrintLn " (@X0BV@X03) View File Description  (@X0BT@X03) Type contents file      (@X0CN@X03)uke flagged files  "
  1867.     PrintLn " (@X0BE@X03) Edit File Description  (@X0BD@X03) Delete Flagged files    (@X0BF@X03)Ilter (Zippy scan) "
  1868.     PrintLn " (@X0BM@X03) Move Flagged files     (@X0BC@X03) Copy Flagged files      (@X0BR@X03)ead all into list  "
  1869.     ClrEol
  1870.     Newline
  1871.     PrintLn " To move the selector you can use the following keys:                         "
  1872.     PrintLn "@X0B ArrowDown or Z = @X03Moves the selector one item down                            "
  1873.     PrintLn "@X0B ArrowUp   or A = @X03Moves the selector one item up                              "
  1874.     PrintLn "@X0B PageDown  or X = @X03Moves the selector one page down, or to the last onscreen   "
  1875.     PrintLn "@X0B PageUp    or S = @X03Moves the selector one page up, or to the first onscreen    "
  1876.     PrintLn "@X0B Home           = @X03Moves the selector to the first item in the list            "
  1877.     PrintLn "@X0B End            = @X03Moves the selector to the last item in the list             "
  1878.     ClrEol
  1879.     Newline
  1880.     ClrEol
  1881.     Newline
  1882.     PrintLn " Pressing @X0BEsc @X03opens the option window if you have files flagged               "
  1883.     ClrEol
  1884.     Newline
  1885.     PROC012(1, 23)
  1886.     AnsiPos 1, 1
  1887.     RestScrn
  1888.     Return
  1889.     :LABEL071
  1890.     TSTRING003(INTEGER031) = ""
  1891.     AnsiPos 1, 23
  1892.     Cls
  1893.     If (TSTRING003(0) == "") Then
  1894.         BOOLEAN001 = 1
  1895.         BOOLEAN002 = 0
  1896.     Else
  1897.         BOOLEAN001 = 0
  1898.         BOOLEAN002 = 1
  1899.     Endif
  1900.     FUNCTION002 = STRING083
  1901.  
  1902.     EndFunc
  1903.  
  1904.  
  1905. ;------------------------------------------------------------------------------
  1906.  
  1907.     Function FUNCTION001() Integer
  1908.  
  1909.     String   STRING088
  1910.     String   STRING089
  1911.     String   STRING090
  1912.     String   STRING091
  1913.     String   STRING092
  1914.     String   STRING093
  1915.     Integer  INTEGER036
  1916.     Integer  INTEGER037
  1917.     Integer  INTEGER038
  1918.     Integer  INTEGER039
  1919.     Integer  INTEGER040
  1920.     Integer  INTEGER041
  1921.     Word     WORD011
  1922.     Word     WORD012
  1923.     Boolean  BOOLEAN033
  1924.     Byte     BYTE013
  1925.     String   STRING094
  1926.  
  1927.     INTEGER039 = 0
  1928.     WORD011 = STRING016
  1929.     INTEGER041 = 0
  1930.     WORD012 = STRING017
  1931.     STRING091 = STRING011
  1932.     :LABEL072
  1933.     STRING090 = I2S(INTEGER039, 10)
  1934.     While ((Len(STRING090) < 4)) STRING090 = STRING090 + " "
  1935.     If (ConfInfo(INTEGER039, 1) <> "") Then
  1936.         If (BOOLEAN008) Then
  1937.             PROC001(INTEGER039)
  1938.             INTEGER038 = FileInf(STRING011, 4)
  1939.             INTEGER037 = INTEGER038 / 96
  1940.             If (INTEGER037 >= 1) Goto LABEL073
  1941.             If (BOOLEAN009) Then
  1942.                 If (STRING007 == "") Then
  1943.                 Endif
  1944.                 If (BOOLEAN010) Then
  1945.                     If (STRING009 == "") Then
  1946.                     Endif
  1947.                     Goto LABEL075
  1948.                 Endif
  1949.             Endif
  1950.             :LABEL073
  1951.             If (BOOLEAN007) Then
  1952.                 If (ConfReg(INTEGER039)) Then
  1953.                     TSTRING001(INTEGER041) = STRING090 + ConfInfo(INTEGER039, 1)
  1954.                     Inc INTEGER041
  1955.                 Endif
  1956.                 Goto LABEL074
  1957.             Endif
  1958.             TSTRING001(INTEGER041) = STRING090 + ConfInfo(INTEGER039, 1)
  1959.             Inc INTEGER041
  1960.             :LABEL074
  1961.             Goto LABEL075
  1962.         Endif
  1963.         If (BOOLEAN007) Then
  1964.             If (ConfReg(INTEGER039)) Then
  1965.                 TSTRING001(INTEGER041) = STRING090 + ConfInfo(INTEGER039, 1)
  1966.                 Inc INTEGER041
  1967.             Endif
  1968.             Goto LABEL075
  1969.         Endif
  1970.         TSTRING001(INTEGER041) = STRING090 + ConfInfo(INTEGER039, 1)
  1971.         Inc INTEGER041
  1972.     Endif
  1973.     :LABEL075
  1974.     Inc INTEGER039
  1975.     If (INTEGER039 <= HiConfNum()) Goto LABEL072
  1976.     TSTRING001(INTEGER041) = ""
  1977.     STRING011 = STRING091
  1978.     Cls
  1979.     If (BOOLEAN002 == 1) Then
  1980.         PrintLn "@X0E─═ @X03Select destination Conference for the files you have flagged @X0E─═════════════"
  1981.     Else
  1982.         PrintLn "@X0E─═ @X03Select Conference @X0E─════════════════════════════════════════════════════════"
  1983.     Endif
  1984.     AnsiPos 1, 22
  1985.     PrintLn "@X0E══════════════════════════════════════════════════════════════════════════════"
  1986.     :LABEL076
  1987.     Gosub LABEL082
  1988.     :LABEL077
  1989.     Gosub LABEL080
  1990.     STRING088 = ""
  1991.     While (STRING088 == "") Do
  1992.         STRING088 = Upper(Inkey())
  1993.     EndWhile
  1994.     Gosub LABEL081
  1995.     If ((((((((((STRING088 == "UP") || (STRING088 == "DOWN")) || (STRING088 == "HOME")) || (STRING088 == "END")) || (STRING088 == "PGUP")) || (STRING088 == "PGDN")) || (STRING088 == "A")) || (STRING088 == "Z")) || (STRING088 == "S")) || (STRING088 == "X")) Then
  1996.         PROC011(STRING088, INTEGER041, WORD011, WORD012, BOOLEAN033)
  1997.     Endif
  1998.     If (BOOLEAN033) Then
  1999.         Gosub LABEL082
  2000.         BOOLEAN033 = 0
  2001.     Endif
  2002.     If ((((((((((STRING088 == "1") || (STRING088 == "2")) || (STRING088 == "3")) || (STRING088 == "4")) || (STRING088 == "5")) || (STRING088 == "6")) || (STRING088 == "7")) || (STRING088 == "8")) || (STRING088 == "9")) || (STRING088 == "0")) Then
  2003.         KbdStuff STRING088
  2004.         STRING092 = FUNCTION006(STRING090)
  2005.         If (STRING092 == "") Goto LABEL076
  2006.         FUNCTION001 = STRING092
  2007.         INTEGER040 = 0
  2008.         While (INTEGER040 < INTEGER041) Do
  2009.             STRING093 = Strip(Left(TSTRING001(INTEGER040), 3), " ")
  2010.             If (STRING093 == FUNCTION001) Then
  2011.                 BOOLEAN001 = 0
  2012.                 BOOLEAN006 = 0
  2013.                 If (INTEGER041 < 20) Then
  2014.                     WORD011 = 0
  2015.                     WORD012 = ToInteger(INTEGER040 + 1)
  2016.                     Goto LABEL078
  2017.                 Endif
  2018.                 If (ToInteger(INTEGER040) + 20 > INTEGER041) Then
  2019.                     WORD011 = INTEGER041 - 20
  2020.                     WORD012 = 20 - INTEGER041 - ToInteger(INTEGER040 + 1)
  2021.                     Goto LABEL078
  2022.                 Endif
  2023.                 WORD011 = ToInteger(INTEGER040)
  2024.                 WORD012 = 1
  2025.                 :LABEL078
  2026.                 Goto LABEL087
  2027.             Endif
  2028.             Inc INTEGER040
  2029.         EndWhile
  2030.         Gosub LABEL079
  2031.     Endif
  2032.     If (Upper(STRING088) == "H") Gosub LABEL084
  2033.     If (Upper(STRING088) == "V") Gosub LABEL085
  2034.     If (STRING088 == Chr(13)) Goto LABEL083
  2035.     If (STRING088 == "RIGHT") Goto LABEL083
  2036.     If (STRING088 == Chr(27)) Goto LABEL086
  2037.     If (STRING088 == "LEFT") Goto LABEL086
  2038.     Goto LABEL077
  2039.     :LABEL079
  2040.     AnsiPos 1, 24
  2041.     SaveScrn
  2042.     AnsiPos 15, 9
  2043.     Print "@X0C┌───────────────────────────────────────────────────┐"
  2044.     AnsiPos 15, 10
  2045.     Print "@X0C│ That was not a valid conference number, try again │"
  2046.     AnsiPos 15, 11
  2047.     Print "@X0C└───────────────────────────────────────────────────┘"
  2048.     PROC012(1, 23)
  2049.     AnsiPos 1, 1
  2050.     RestScrn
  2051.     Gosub LABEL082
  2052.     Return
  2053.     :LABEL080
  2054.     STRING089 = ScrText(1, WORD012 + 1, 78, 0)
  2055.     AnsiPos 1, WORD012 + 1
  2056.     If (GrafMode() == "A") Then
  2057.         Print " ", Upper(STRING089)
  2058.     Else
  2059.         Print "@X1F", STRING089
  2060.     Endif
  2061.     AnsiPos 1, WORD012 + 1
  2062.     Return
  2063.     :LABEL081
  2064.     STRING089 = TSTRING001(WORD011 + WORD012 - 1)
  2065.     AnsiPos 1, WORD012 + 1
  2066.     Print "@X07", STRING089
  2067.     ClrEol
  2068.     Return
  2069.     :LABEL082
  2070.     AnsiPos 1, 23
  2071.     ClrEol
  2072.     If (BOOLEAN002 == 1) Then
  2073.         Print "@X0FDestination Conference: ", Chr(24), "@X08/@X0F", Chr(25), "@X08/@X0FPGUP@X08/@X0FPGDOWN@X08/@X0FHOME@X08/@X0FEND@X08/@X0FNUM@X08/@X0F(H)elp - (Enter) selects"
  2074.     Else
  2075.         Print "@X0FSelect conference: ", Chr(24), "@X08/@X0F", Chr(25), "@X08/@X0FPGUP@X08/@X0FPGDOWN@X08/@X0FHOME@X08/@X0FEND@X08/@X0FNUM@X08/@X0F(H)elp - (Enter) selects"
  2076.     Endif
  2077.     BYTE013 = 1
  2078.     Color 7
  2079.     While ((BYTE013 < 21) && (TSTRING001(WORD011 + BYTE013 - 1) <> "")) Do
  2080.         AnsiPos 1, BYTE013 + 1
  2081.         ClrEol
  2082.         AnsiPos 1, BYTE013 + 1
  2083.         Print TSTRING001(WORD011 + BYTE013 - 1)
  2084.         Inc BYTE013
  2085.     EndWhile
  2086.     Return
  2087.     :LABEL083
  2088.     BOOLEAN001 = 0
  2089.     BOOLEAN006 = 0
  2090.     FUNCTION001 = ToInt(Left(STRING089, 3))
  2091.     Goto LABEL087
  2092.     :LABEL084
  2093.     AnsiPos 1, 24
  2094.     SaveScrn
  2095.     AnsiPos 1, 2
  2096.     PrintLn "@X0F O-File @X07- @X0BOnline File Handler for PCBoard 15.22                            "
  2097.     ClrEol
  2098.     Newline
  2099.     PrintLn "@X03 After Selecting a conference you will have to select File area in the     "
  2100.     PrintLn " Conference.                                "
  2101.     PrintLn " If you have files flagged you should select the Destination conference    "
  2102.     PrintLn " for the files you have flagged. (@X0BV@X03)iew shows available hard-drive space.  "
  2103.     ClrEol
  2104.     Newline
  2105.     PrintLn " To move the selector you can use the following keys:                      "
  2106.     PrintLn "@X0B ArrowDown or Z = @X03Moves the selector one item down                         "
  2107.     PrintLn "@X0B ArrowUp   or A = @X03Moves the selector one item up                           "
  2108.     PrintLn "@X0B PageDown  or X = @X03Moves the selector one page down, or to the last onscreen"
  2109.     PrintLn "@X0B PageUp    or S = @X03Moves the selector one page up, or to the first onscreen "
  2110.     PrintLn "@X0B Home           = @X03Moves the selector to the first item in the list         "
  2111.     PrintLn "@X0B End            = @X03Moves the selector to the last item in the list          "
  2112.     ClrEol
  2113.     Newline
  2114.     PrintLn " To select an item press @X0BReturn @X03or @X0BArrow Right@X03, or type the line number. To"
  2115.     PrintLn " Exit press @X0BEsc @X03or @X0BArrow Left@X03. If you have files flagged @X0BEsc@X03 will return   "
  2116.     PrintLn " you to the previous list. Enter conference # directly for quick selection."
  2117.     ClrEol
  2118.     Newline
  2119.     PrintLn "@X0C Copyright Slob-Trot Software Oy Ab, Helsinki, Finland, 1996               "
  2120.     PROC012(1, 23)
  2121.     AnsiPos 1, 1
  2122.     RestScrn
  2123.     Return
  2124.     :LABEL085
  2125.     AnsiPos 1, 24
  2126.     SaveScrn
  2127.     Shell 1, INTEGER036, PPEPath() + "DISKINFO", ""
  2128.     AnsiPos 1, 1
  2129.     PROC020(PPEPath() + "DISKINFO.CAP", 1)
  2130.     AnsiPos 1, 1
  2131.     RestScrn
  2132.     Return
  2133.     :LABEL086
  2134.     FUNCTION001 = INTEGER002
  2135.     If (BOOLEAN002 == 1) Then
  2136.         BOOLEAN006 = 1
  2137.         Goto LABEL087
  2138.     Else
  2139.         BOOLEAN006 = 0
  2140.         BOOLEAN003 = 1
  2141.         Goto LABEL087
  2142.     Endif
  2143.     :LABEL087
  2144.     STRING016 = WORD011
  2145.     STRING017 = WORD012
  2146.  
  2147.     EndFunc
  2148.  
  2149.  
  2150. ;------------------------------------------------------------------------------
  2151.  
  2152.     Function FUNCTION005(String STRING094) String
  2153.  
  2154.     String   STRING096
  2155.     String   STRING097
  2156.     Integer  INTEGER042
  2157.     Integer  INTEGER043
  2158.  
  2159.     If (STRING094 == "") Goto LABEL088
  2160.     STRING096 = STRING094
  2161.     Goto LABEL096
  2162.     :LABEL088
  2163.     INTEGER042 = 0
  2164.     PROC020(PPEPath() + "DISP\SELSCRN", 0)
  2165.     AnsiPos 1, 10
  2166.     ClrEol
  2167.     Print "@X0B Give Your Selection:@X0F "
  2168.     :LABEL089
  2169.     STRING096 = FUNCTION007(1)
  2170.     If (STRING096 == "C") Goto LABEL090
  2171.     If (STRING096 == "D") Goto LABEL091
  2172.     If (STRING096 == "M") Goto LABEL092
  2173.     If (STRING096 == "Q") Goto LABEL093
  2174.     If (STRING096 == "V") Goto LABEL094
  2175.     If (STRING096 == "B") Goto LABEL096
  2176.     If (STRING096 == "V") Goto LABEL094
  2177.     If (STRING096 == "N") Goto LABEL095
  2178.     If (STRING096 == Chr(27)) Goto LABEL093
  2179.     Goto LABEL089
  2180.     :LABEL090
  2181.     PrintLn "COPY SELECTED"
  2182.     Delay 10
  2183.     Goto LABEL096
  2184.     :LABEL091
  2185.     PrintLn "DELETE SELECTED"
  2186.     Delay 10
  2187.     Goto LABEL096
  2188.     :LABEL092
  2189.     PrintLn "MOVE SELECTED"
  2190.     Delay 10
  2191.     Goto LABEL096
  2192.     :LABEL093
  2193.     PrintLn "QUIT SELECTED"
  2194.     STRING097 = FUNCTION004(" There are files flagged, Quit anyway:           ")
  2195.     Select Case (STRING097)
  2196.         Case "Y"
  2197.             BOOLEAN002 = 0
  2198.             BOOLEAN001 = 1
  2199.             Goto LABEL097
  2200.         Case "N"
  2201.             Goto LABEL088
  2202.     End Select
  2203.     Goto LABEL096
  2204.     :LABEL094
  2205.     PrintLn "View Flagged files:"
  2206.     INTEGER042 = 0
  2207.     StartDisp 2
  2208.     If (BOOLEAN011) Then
  2209.         While (TSTRING003(INTEGER042) <> "") Do
  2210.             Print "@X0B", TSTRING003(INTEGER042), Space(13 - Len(TSTRING003(INTEGER042))), " @X03- "
  2211.             Inc INTEGER042
  2212.         EndWhile
  2213.     Else
  2214.         While (TSTRING001(INTEGER042) <> "") Do
  2215.             If (Left(TSTRING001(INTEGER042), 1) == "@") Then
  2216.                 PrintLn TSTRING001(INTEGER042)
  2217.                 ClrEol
  2218.             Endif
  2219.             Inc INTEGER042
  2220.         EndWhile
  2221.     Endif
  2222.     StartDisp 1
  2223.     PROC012(1, 23)
  2224.     Goto LABEL088
  2225.     :LABEL095
  2226.     PrintLn "NUKE SELECTED"
  2227.     Delay 10
  2228.     :LABEL096
  2229.     FUNCTION005 = STRING096
  2230.     :LABEL097
  2231.  
  2232.     EndFunc
  2233.  
  2234.  
  2235. ;------------------------------------------------------------------------------
  2236.  
  2237.     Procedure PROC001(Integer INTEGER043)
  2238.  
  2239.     STRING006 = ConfInfo(INTEGER043, 1)
  2240.     STRING007 = ConfInfo(INTEGER043, 17)
  2241.     STRING008 = ConfInfo(INTEGER043, 18)
  2242.     STRING009 = ConfInfo(INTEGER043, 20)
  2243.     STRING010 = ConfInfo(INTEGER043, 21)
  2244.     STRING011 = ConfInfo(INTEGER043, 29)
  2245.  
  2246.     EndProc
  2247.  
  2248.  
  2249. ;------------------------------------------------------------------------------
  2250.  
  2251.     Procedure PROC003()
  2252.  
  2253.     Integer  INTEGER044
  2254.     Integer  INTEGER045
  2255.     String   STRING098
  2256.  
  2257.     :LABEL098
  2258.     INTEGER002 = FUNCTION001()
  2259.     If (BOOLEAN006) Goto LABEL099
  2260.     PROC001(INTEGER002)
  2261.     PROC002(STRING011, STRING012, STRING013)
  2262.     If (BOOLEAN001 == 1) Goto LABEL098
  2263.     Cls
  2264.     FCreate 1, PPEPath() + "WORK\RESULT." + String(PcbNode()), 2, 0
  2265.     FPut 1, STRING013, Chr(13), Chr(10)
  2266.     FPut 1, STRING012, Chr(13), Chr(10)
  2267.     FPut 1, TSTRING002(0), Chr(13), Chr(10)
  2268.     FPut 1, TSTRING002(1), Chr(13), Chr(10)
  2269.     FPut 1, "C", Chr(13), Chr(10)
  2270.     While (TSTRING003(INTEGER044) <> "") Do
  2271.         FPut 1, TSTRING003(INTEGER044), Chr(13), Chr(10)
  2272.         Inc INTEGER044
  2273.     EndWhile
  2274.     FClose 1
  2275.     PrintLn "Files will be copied, please wait..."
  2276.     STRING098 = String(PcbNode()) + " " + PPEPath()
  2277.     Shell 1, INTEGER045, PPEPath() + "OFILE", STRING098
  2278.     PROC007(INTEGER045)
  2279.     PROC010("COPY ")
  2280.     :LABEL099
  2281.  
  2282.     EndProc
  2283.  
  2284.  
  2285. ;------------------------------------------------------------------------------
  2286.  
  2287.     Procedure PROC004()
  2288.  
  2289.     Integer  INTEGER046
  2290.     Integer  INTEGER047
  2291.     String   STRING099
  2292.  
  2293.     :LABEL100
  2294.     INTEGER002 = FUNCTION001()
  2295.     If (BOOLEAN006) Goto LABEL101
  2296.     PROC001(INTEGER002)
  2297.     PROC002(STRING011, STRING012, STRING013)
  2298.     If (BOOLEAN001 == 1) Goto LABEL100
  2299.     Cls
  2300.     FCreate 1, PPEPath() + "WORK\RESULT." + String(PcbNode()), 2, 0
  2301.     FPut 1, STRING013, Chr(13), Chr(10)
  2302.     FPut 1, STRING012, Chr(13), Chr(10)
  2303.     FPut 1, TSTRING002(0), Chr(13), Chr(10)
  2304.     FPut 1, TSTRING002(1), Chr(13), Chr(10)
  2305.     FPut 1, "M", Chr(13), Chr(10)
  2306.     While (TSTRING003(INTEGER046) <> "") Do
  2307.         FPut 1, TSTRING003(INTEGER046), Chr(13), Chr(10)
  2308.         Inc INTEGER046
  2309.     EndWhile
  2310.     FClose 1
  2311.     PrintLn "Files will be Moved, please wait..."
  2312.     STRING099 = String(PcbNode()) + " " + PPEPath()
  2313.     Shell 1, INTEGER047, PPEPath() + "OFILE", STRING099
  2314.     PROC007(INTEGER047)
  2315.     PROC010("MOVE ")
  2316.     :LABEL101
  2317.  
  2318.     EndProc
  2319.  
  2320.  
  2321. ;------------------------------------------------------------------------------
  2322.  
  2323.     Procedure PROC005()
  2324.  
  2325.     Integer  INTEGER048
  2326.     String   STRING100
  2327.     String   STRING101
  2328.     Integer  INTEGER049
  2329.  
  2330.     STRING101 = FUNCTION004(" DELETE ALL FLAGGED FILES ??? (y/n)              ")
  2331.     If (STRING101 == "N") Then
  2332.         BOOLEAN001 = 1
  2333.     Else
  2334.         FCreate 1, PPEPath() + "WORK\RESULT." + String(PcbNode()), 2, 0
  2335.         FPut 1, " ", Chr(13), Chr(10)
  2336.         FPut 1, " ", Chr(13), Chr(10)
  2337.         FPut 1, TSTRING002(0), Chr(13), Chr(10)
  2338.         FPut 1, TSTRING002(1), Chr(13), Chr(10)
  2339.         FPut 1, "D", Chr(13), Chr(10)
  2340.         While (TSTRING003(INTEGER049) <> "") Do
  2341.             FPut 1, TSTRING003(INTEGER049), Chr(13), Chr(10)
  2342.             Inc INTEGER049
  2343.         EndWhile
  2344.         FClose 1
  2345.         PrintLn "Files will be DELETED, please wait..."
  2346.         STRING100 = String(PcbNode()) + " " + PPEPath()
  2347.         Shell 1, INTEGER048, PPEPath() + "OFILE", STRING100
  2348.         PROC007(INTEGER048)
  2349.         PROC010("DEL  ")
  2350.         BOOLEAN001 = 0
  2351.     Endif
  2352.  
  2353.     EndProc
  2354.  
  2355.  
  2356. ;------------------------------------------------------------------------------
  2357.  
  2358.     Procedure PROC006()
  2359.  
  2360.     Integer  INTEGER050
  2361.     Integer  INTEGER051
  2362.     Integer  INTEGER052
  2363.     Integer  INTEGER053
  2364.     String   STRING102
  2365.     String   STRING103
  2366.     Boolean  BOOLEAN034
  2367.     Boolean  BOOLEAN035
  2368.     Boolean  BOOLEAN036
  2369.     Boolean  BOOLEAN037
  2370.     Boolean  BOOLEAN038
  2371.     Boolean  BOOLEAN039
  2372.     Boolean  BOOLEAN040
  2373.     Boolean  BOOLEAN041
  2374.  
  2375.     BOOLEAN039 = 0
  2376.     BOOLEAN034 = 0
  2377.     BOOLEAN035 = 0
  2378.     BOOLEAN036 = 1
  2379.     BOOLEAN037 = 0
  2380.     BOOLEAN038 = 0
  2381.     BOOLEAN040 = 1
  2382.     BOOLEAN041 = 0
  2383.     INTEGER053 = 3
  2384.     Cls
  2385.     PrintLn " @X03O-File @X0BNuke @X03options. Pressing escape returns you to the file options"
  2386.     PrintLn "@X0E─────────────────────────────────────────────────────────────────────────────"
  2387.     Print "@X07 Leave a Zerobyte file on hard-drive: "
  2388.     STRING103 = FUNCTION003("@X0FYES@X07/@X08no", "@X08yes@X07/@X0FNO", 40, INTEGER053)
  2389.     Inc INTEGER053
  2390.     If (STRING103 == Chr(27)) Goto LABEL104
  2391.     If (STRING103 == "N") Then
  2392.         BOOLEAN040 = 0
  2393.         AnsiPos 1, INTEGER053
  2394.         Print "@X07 Delete File : "
  2395.         STRING103 = FUNCTION003("@X0FYES@X07/@X08no", "@X08yes@X07/@X0FNO", 40, INTEGER053)
  2396.         Inc INTEGER053
  2397.         If (STRING103 == Chr(27)) Goto LABEL104
  2398.         If (STRING103 == "Y") BOOLEAN041 = 1
  2399.     Endif
  2400.     AnsiPos 1, INTEGER053
  2401.     Print "@X07 Keep FileDescription: "
  2402.     STRING103 = FUNCTION003("@X0FYES@X07/@X08no", "@X08yes@X07/@X0FNO", 40, INTEGER053)
  2403.     Inc INTEGER053
  2404.     If (STRING103 == Chr(27)) Goto LABEL104
  2405.     If (STRING103 == "Y") Then
  2406.         BOOLEAN034 = 1
  2407.         AnsiPos 1, INTEGER053
  2408.         Print "@X07  - Add NukeAnsi: "
  2409.         STRING103 = FUNCTION003("@X0FYES@X07/@X08no", "@X08yes@X07/@X0FNO", 40, INTEGER053)
  2410.         Inc INTEGER053
  2411.         If (STRING103 == Chr(27)) Goto LABEL104
  2412.         If (STRING103 == "N") Then
  2413.             BOOLEAN036 = 0
  2414.             Goto LABEL102
  2415.         Endif
  2416.         BOOLEAN039 = 1
  2417.         AnsiPos 1, INTEGER053
  2418.         Print "@X07  - Replace description with NukeAnsi:                (No = Insert Ansi on top)"
  2419.         STRING103 = FUNCTION003("@X0FYES@X07/@X08no", "@X08yes@X07/@X0FNO", 40, INTEGER053)
  2420.         Inc INTEGER053
  2421.         If (STRING103 == Chr(27)) Goto LABEL104
  2422.         If (STRING103 == "Y") Then
  2423.             BOOLEAN035 = 1
  2424.         Endif
  2425.         :LABEL102
  2426.         Goto LABEL103
  2427.     Endif
  2428.     :LABEL103
  2429.     AnsiPos 1, INTEGER053
  2430.     Print "@X07 Send uploader a message (NUKED.MES) : "
  2431.     STRING103 = FUNCTION003("@X0FYES@X07/@X08no", "@X08yes@X07/@X0FNO", 40, INTEGER053)
  2432.     Inc INTEGER053
  2433.     If (STRING103 == Chr(27)) Goto LABEL104
  2434.     If (STRING103 == "Y") Then
  2435.         BOOLEAN039 = 1
  2436.         BOOLEAN037 = 1
  2437.     Endif
  2438.     AnsiPos 1, INTEGER053
  2439.     Print "@X07 Remove uploaders credits : "
  2440.     STRING103 = FUNCTION003("@X0FYES@X07/@X08no", "@X08yes@X07/@X0FNO", 40, INTEGER053)
  2441.     Inc INTEGER053
  2442.     If (STRING103 == Chr(27)) Goto LABEL104
  2443.     If (STRING103 == "Y") Then
  2444.         BOOLEAN039 = 1
  2445.         BOOLEAN038 = 1
  2446.         AnsiPos 1, INTEGER053
  2447.         InputStr " @X0FEnter Multiplier (@X07FileSize * Multiplier = NukeSize@X0F): _", STRING103, 7, 3, "1234567890", 8
  2448.         INTEGER051 = ToInteger(STRING103)
  2449.     Endif
  2450.     FCreate 1, PPEPath() + "WORK\RESULT." + String(PcbNode()), 2, 0
  2451.     FPut 1, " ", Chr(13), Chr(10)
  2452.     FPut 1, " ", Chr(13), Chr(10)
  2453.     FPut 1, TSTRING002(0), Chr(13), Chr(10)
  2454.     FPut 1, TSTRING002(1), Chr(13), Chr(10)
  2455.     FPut 1, "N"
  2456.     If (BOOLEAN034) Then
  2457.         If (BOOLEAN036) Then
  2458.             If (BOOLEAN035) Then
  2459.                 FPut 1, "A"
  2460.             Else
  2461.                 FPut 1, "B"
  2462.             Endif
  2463.         Else
  2464.             FPut 1, "D"
  2465.         Endif
  2466.     Else
  2467.         FPut 1, " "
  2468.     Endif
  2469.     If (BOOLEAN040) Then
  2470.         FPut 1, "Z"
  2471.     ElseIf (BOOLEAN041) Then
  2472.         FPut 1, "D"
  2473.     Else
  2474.         FPut 1, " "
  2475.     Endif
  2476.     If (BOOLEAN039) Then
  2477.         FPut 1, "G", INTEGER051, Chr(13), Chr(10)
  2478.         FPut 1, ReadLine(PCBDat(), 46), Chr(13), Chr(10)
  2479.     Else
  2480.         FPut 1, " ", INTEGER051, Chr(13), Chr(10)
  2481.         FPut 1, ReadLine(PCBDat(), 46), Chr(13), Chr(10)
  2482.     Endif
  2483.     While (TSTRING003(INTEGER052) <> "") Do
  2484.         FPut 1, TSTRING003(INTEGER052), Chr(13), Chr(10)
  2485.         Inc INTEGER052
  2486.     EndWhile
  2487.     FClose 1
  2488.     Cls
  2489.     PrintLn "@X83 NUKING ACTIVE - please wait...@X07"
  2490.     STRING102 = String(PcbNode()) + " " + PPEPath()
  2491.     Shell 1, INTEGER050, PPEPath() + "OFILE", STRING102
  2492.     PROC007(INTEGER050)
  2493.     PROC010("NUKE ")
  2494.     BOOLEAN001 = 0
  2495.     If (BOOLEAN037 || BOOLEAN038) Then
  2496.         PROC023(BOOLEAN037, BOOLEAN038)
  2497.     Endif
  2498.     Goto LABEL105
  2499.     :LABEL104
  2500.     Cls
  2501.     PrintLn "@X0C Escape has been pressed. You will be returned to File options..."
  2502.     Delay 15
  2503.     BOOLEAN001 = 1
  2504.     :LABEL105
  2505.  
  2506.     EndProc
  2507.  
  2508.  
  2509. ;------------------------------------------------------------------------------
  2510.  
  2511.     Function FUNCTION003(String STRING104, String STRING105, Integer INTEGER054, Integer INTEGER055) String
  2512.  
  2513.     String   STRING107
  2514.     String   STRING108
  2515.  
  2516.     :LABEL106
  2517.     AnsiPos INTEGER054, INTEGER055
  2518.     Print STRING104
  2519.     AnsiPos INTEGER054, INTEGER055
  2520.     :LABEL107
  2521.     STRING107 = ""
  2522.     STRING107 = Inkey()
  2523.     If (STRING107 == "LEFT") Goto LABEL108
  2524.     If (STRING107 == "RIGHT") Goto LABEL108
  2525.     If (STRING107 == Chr(13)) Goto LABEL110
  2526.     If (STRING107 == Chr(27)) Goto LABEL112
  2527.     If (Upper(STRING107) == YesChar()) Goto LABEL110
  2528.     If (Upper(STRING107) == NoChar()) Goto LABEL111
  2529.     Goto LABEL107
  2530.     :LABEL108
  2531.     AnsiPos INTEGER054, INTEGER055
  2532.     Print STRING105
  2533.     :LABEL109
  2534.     STRING107 = ""
  2535.     STRING107 = Inkey()
  2536.     If (STRING107 == "LEFT") Goto LABEL106
  2537.     If (STRING107 == "RIGHT") Goto LABEL106
  2538.     If (STRING107 == Chr(13)) Goto LABEL111
  2539.     If (STRING107 == Chr(27)) Goto LABEL112
  2540.     If (Upper(STRING107) == YesChar()) Goto LABEL110
  2541.     If (Upper(STRING107) == NoChar()) Goto LABEL111
  2542.     Goto LABEL109
  2543.     :LABEL110
  2544.     AnsiPos INTEGER054, INTEGER055
  2545.     Print STRING104
  2546.     FUNCTION003 = "Y"
  2547.     Goto LABEL113
  2548.     :LABEL111
  2549.     AnsiPos INTEGER054, INTEGER055
  2550.     Print STRING105
  2551.     FUNCTION003 = "N"
  2552.     Goto LABEL113
  2553.     :LABEL112
  2554.     FUNCTION003 = Chr(27)
  2555.     :LABEL113
  2556.  
  2557.     EndFunc
  2558.  
  2559.  
  2560. ;------------------------------------------------------------------------------
  2561.  
  2562.     Function FUNCTION004(String STRING108) String
  2563.  
  2564.     Integer  INTEGER056
  2565.  
  2566.     AnsiPos 1, 24
  2567.     SaveScrn
  2568.     AnsiPos 15, 12
  2569.     Print "@X0C┌─────────────────────────────────────────────────┐"
  2570.     AnsiPos 15, 13
  2571.     Print "@X0C│", STRING108, "│"
  2572.     AnsiPos 15, 14
  2573.     Print "@X0C└─────────────────────────────────────────────────┘"
  2574.     AnsiPos 1, 23
  2575.     ClrEol
  2576.     FUNCTION004 = FUNCTION003("@X0FYES@X07/no", "@X07yes/@X0FNO", 55, 13)
  2577.     If (FUNCTION004 == Chr(27)) FUNCTION004 = "N"
  2578.     AnsiPos 1, 1
  2579.     RestScrn
  2580.  
  2581.     EndFunc
  2582.  
  2583.  
  2584. ;------------------------------------------------------------------------------
  2585.  
  2586.     Procedure PROC007(Integer INTEGER056)
  2587.  
  2588.     If (Exist(PPEPath() + "WORK\ERRLOG$$." + String(PcbNode()))) Then
  2589.         PROC020(PPEPath() + "WORK\ERRLOG$$." + String(PcbNode()), 1)
  2590.     Endif
  2591.     If (INTEGER056 == 0) Then
  2592.         Cls
  2593.         AnsiPos 18, 12
  2594.         Print "Fileprocessing completed... "
  2595.         Delay 12
  2596.     Else
  2597.         AnsiPos 1, 1
  2598.         Select Case (INTEGER056)
  2599.             Case 255
  2600.                 Print "@X8CERROR! @X0CA unknown problem occured while processing files & Descriptions."
  2601.             Case 140
  2602.                 Cls
  2603.                 PrintLn "@X0C       ERROR! Invalid CRC-Checkusum. OFILE.PPE has been tampered with.        "
  2604.                 PrintLn "@X08 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
  2605.                 Newline
  2606.                 PrintLn "    @X03You can not modify O-File ppe. If you wish to add features you have to "
  2607.                 PrintLn "    contact Slob-Trot Software and ask us to add the feature into the next  "
  2608.                 PrintLn "    release. The best way to do that is by e-mailing ""slobtrot@kaapeli.fi"""
  2609.                 End
  2610.             Case 150
  2611.                 Print "@X0CERROR! No files found Found. "
  2612.             Case 160
  2613.                 Print "@X0CERROR! Source & Destination Directories are equal. Cannot process files."
  2614.             Case 170
  2615.                 Print "@X0CERROR! Source Dirlist not Found."
  2616.             Case 180
  2617.                 Print "@X0CERROR! Source/Destination Directory not Found."
  2618.             Case 190
  2619.                 Print "@X0CInternal ERROR! Invalid Command Was passed."
  2620.             Case 200
  2621.                 Print "@X0CERROR! File RESULT.[Node] not Found. Cannot do anything without it..."
  2622.             Case 201
  2623.                 Print "@X0CERROR! Source path not found."
  2624.             Case 210
  2625.                 Print "@X0CERROR! Invalid arguments passed. Contact Slob-Trot Software..."
  2626.             Case 255
  2627.                 Print "@X0CERROR! No Arguments Passed. How could this be possible.. please reboot PCB"
  2628.             Case Else
  2629.                 Print "@X0CERROR! Unknown error. Contact Slob-Trot Software (+358-9-3404525)"
  2630.         End Select
  2631.         PROC012(1, 23)
  2632.     Endif
  2633.  
  2634.     EndProc
  2635.  
  2636.  
  2637. ;------------------------------------------------------------------------------
  2638.  
  2639.     Procedure PROC008(String STRING110, String STRING111)
  2640.  
  2641.     String   STRING112
  2642.     String   STRING113
  2643.     Boolean  BOOLEAN042
  2644.     Integer  INTEGER057
  2645.     Integer  INTEGER058
  2646.     Integer  INTEGER059
  2647.     Boolean  BOOLEAN043
  2648.  
  2649.     For INTEGER058 = 0 To 20
  2650.         TSTRING004(INTEGER058) = ""
  2651.     Next
  2652.     INTEGER057 = 0
  2653.     INTEGER058 = 0
  2654.     INTEGER059 = 0
  2655.     AnsiPos 1, 23
  2656.     ClrEol
  2657.     AnsiPos 1, 23
  2658.     Print "@X0F", "Searching for DIZ... Please wait@X07"
  2659.     FOpen 1, STRING111, 0, 0
  2660.     FDefIn 1
  2661.     :LABEL114
  2662.     FDGet STRING112
  2663.     STRING113 = Left(STRING112, 12)
  2664.     STRING113 = Strip(STRING113, " ")
  2665.     If (STRING113 <> "") Then
  2666.         If (STRING113 == STRING110) Then
  2667.             If (BOOLEAN013) STRING112 = StripAtx(STRING112)
  2668.             TSTRING004(INTEGER059) = STRING112
  2669.             Inc INTEGER059
  2670.             FDGet STRING112
  2671.             While (!BOOLEAN043 && !BOOLEAN042) Do
  2672.                 STRING113 = Left(STRING112, 12)
  2673.                 STRING113 = Strip(STRING113, " ")
  2674.                 If (STRING113 <> "") Then
  2675.                     STRING113 = Strip(Mid(STRING112, 13, 9), " ")
  2676.                     If ((Mid(STRING112, 22, 2) == "  ") && (STRING113 == String(S2I(STRING113, 10)))) BOOLEAN043 = 1
  2677.                     Goto LABEL115
  2678.                 Endif
  2679.                 If (INTEGER059 <= 20) Then
  2680.                     If (INTEGER059 == 20) BOOLEAN043 = 1
  2681.                     If (BOOLEAN013) STRING112 = StripAtx(STRING112)
  2682.                     TSTRING004(INTEGER059) = STRING112
  2683.                     Inc INTEGER059
  2684.                 Endif
  2685.                 :LABEL115
  2686.                 BOOLEAN042 = Ferr(1)
  2687.                 FDGet STRING112
  2688.             EndWhile
  2689.         Endif
  2690.     Endif
  2691.     If (BOOLEAN043) Goto LABEL116
  2692.     BOOLEAN042 = Ferr(1)
  2693.     If (!BOOLEAN042) Goto LABEL114
  2694.     :LABEL116
  2695.     TSTRING004(INTEGER059) = ""
  2696.     FClose 1
  2697.     AnsiPos 56, 1
  2698.     Print "@X09Description view@X0F"
  2699.     ClrEol
  2700.     AnsiPos 1, 2
  2701.     While (INTEGER058 < 20) Do
  2702.         If (TSTRING004(INTEGER058) <> "") Then
  2703.             If (BOOLEAN004) Then
  2704.                 For INTEGER057 = 0 To 31
  2705.                     TSTRING004(INTEGER058) = Strip(TSTRING004(INTEGER058), Chr(INTEGER057))
  2706.                 Next
  2707.             Endif
  2708.             Print TSTRING004(INTEGER058)
  2709.         Endif
  2710.         ClrEol
  2711.         Newline
  2712.         Inc INTEGER058
  2713.     EndWhile
  2714.     PROC012(1, 23)
  2715.  
  2716.     EndProc
  2717.  
  2718.  
  2719. ;------------------------------------------------------------------------------
  2720.  
  2721.     Procedure PROC009(String STRING114, Integer INTEGER060, Integer INTEGER061)
  2722.  
  2723.     AnsiPos INTEGER060, INTEGER061
  2724.     If (STRING114 >= 10) Print "@X03", STRING114, "@X0F"
  2725.     If (STRING114 < 10) Print "@X030", STRING114, "@X0F"
  2726.  
  2727.     EndProc
  2728.  
  2729.  
  2730. ;------------------------------------------------------------------------------
  2731.  
  2732.     Procedure PROC010(String STRING115)
  2733.  
  2734.     String   STRING116
  2735.  
  2736.     If (BOOLEAN005) Then
  2737.         FAppend 1, PPEPath() + "LOGFILE.LOG", 2, 0
  2738.         STRING116 = U_Name()
  2739.         While ((Len(STRING116) < 25)) STRING116 = STRING116 + " "
  2740.         FPutPad 1, STRING116, 25
  2741.         FPut 1, " "
  2742.         FPutPad 1, "Used the", 8
  2743.         FPut 1, " "
  2744.         FPutPad 1, STRING115, 5
  2745.         FPut 1, " "
  2746.         FPutPad 1, "Function:", 9
  2747.         FPut 1, " "
  2748.         FPutPad 1, Date(), 8
  2749.         FPut 1, " "
  2750.         FPutPad 1, Time(), 5
  2751.         FPut 1, +Chr(13) + Chr(10)
  2752.         FClose 1
  2753.     Endif
  2754.  
  2755.     EndProc
  2756.  
  2757.  
  2758. ;------------------------------------------------------------------------------
  2759.  
  2760.     Function FUNCTION006(Integer INTEGER062) String
  2761.  
  2762.     String   STRING118
  2763.  
  2764.     AnsiPos 1, 23
  2765.     ClrEol
  2766.     AnsiPos 1, 23
  2767.     :LABEL117
  2768.     STRING118 = ""
  2769.     If (INTEGER062 < 10) Then
  2770.         While (STRING118 == "") Do
  2771.             STRING118 = Upper(Inkey())
  2772.         EndWhile
  2773.     Else
  2774.         InputStr "@X0F Enter line number :@X07", STRING118, 16, 3, "1234567890PpUu", 8192
  2775.         If (STRING118 == "") Goto LABEL119
  2776.         Select Case (Left(Upper(STRING118), 1))
  2777.             Case "U"
  2778.                 STRING118 = "U"
  2779.             Case "P"
  2780.                 STRING118 = "P"
  2781.             Case Else
  2782.                 If (STRING118 > INTEGER062) Then
  2783.                     Gosub LABEL118
  2784.                 Else
  2785.                     Goto LABEL119
  2786.                 Endif
  2787.                 Goto LABEL117
  2788.                 :LABEL118
  2789.                 AnsiPos 1, 23
  2790.                 ClrEol
  2791.                 AnsiPos 1, 23
  2792.                 Print "@X0C Invalid line number...@X07@X0F"
  2793.                 Delay 15
  2794.                 AnsiPos 1, 23
  2795.                 ClrEol
  2796.                 AnsiPos 1, 23
  2797.                 Return
  2798.             Endif
  2799.     End Select
  2800.     :LABEL119
  2801.     FUNCTION006 = STRING118
  2802.  
  2803.     EndFunc
  2804.  
  2805.  
  2806. ;------------------------------------------------------------------------------
  2807. ;
  2808. ; Usage report (before postprocessing)
  2809. ;
  2810. ; ■ Statements used :
  2811. ;
  2812. ;    3       End
  2813. ;    19      Cls
  2814. ;    55      ClrEol
  2815. ;    8       Color 
  2816. ;    536     Goto 
  2817. ;    464     Let 
  2818. ;    141     Print 
  2819. ;    82      PrintLn 
  2820. ;    388     If 
  2821. ;    6       FCreate 
  2822. ;    7       FOpen 
  2823. ;    1       FAppend 
  2824. ;    14      FClose 
  2825. ;    1       FGet 
  2826. ;    50      FPut 
  2827. ;    4       StartDisp 
  2828. ;    6       FPutPad 
  2829. ;    1       PutUser
  2830. ;    2       Log 
  2831. ;    2       InputStr 
  2832. ;    39      Gosub 
  2833. ;    25      Return
  2834. ;    16      Delay 
  2835. ;    60      Inc 
  2836. ;    14      Dec 
  2837. ;    18      Newline
  2838. ;    1       Tokenize 
  2839. ;    7       Shell 
  2840. ;    1       InputText 
  2841. ;    2       KbdStuff 
  2842. ;    179     AnsiPos 
  2843. ;    1       Message 
  2844. ;    12      SaveScrn
  2845. ;    12      RestScrn
  2846. ;    5       FSeek 
  2847. ;    5       FRead 
  2848. ;    3       FDefIn 
  2849. ;    8       FDGet 
  2850. ;    1       GetAltUser 
  2851. ;    3       ScrFile 
  2852. ;    2       SearchInit 
  2853. ;    2       SearchFind 
  2854. ;    1       SearchStop
  2855. ;    23      EndProc
  2856. ;    7       EndFunc
  2857. ;    1       StackAbort 
  2858. ;    1       AdjTUBytes 
  2859. ;    2       MkDir 
  2860. ;
  2861. ;
  2862. ; ■ Functions used :
  2863. ;
  2864. ;    1       +
  2865. ;    1       -
  2866. ;    9       *
  2867. ;    2       /
  2868. ;    220     +
  2869. ;    38      -
  2870. ;    294     ==
  2871. ;    44      <>
  2872. ;    39      <
  2873. ;    16      <=
  2874. ;    16      >
  2875. ;    19      >=
  2876. ;    269     !
  2877. ;    31      &&
  2878. ;    73      ||
  2879. ;    19      Len(
  2880. ;    36      Upper()
  2881. ;    8       Mid()
  2882. ;    26      Left()
  2883. ;    5       Right()
  2884. ;    4       Space()
  2885. ;    7       Ferr()
  2886. ;    124     Chr()
  2887. ;    1       Date()
  2888. ;    3       Time()
  2889. ;    1       U_Name()
  2890. ;    2       NoChar()
  2891. ;    2       YesChar()
  2892. ;    12      StripAtx()
  2893. ;    1       Replace()
  2894. ;    22      Strip()
  2895. ;    12      Inkey()
  2896. ;    20      String()
  2897. ;    3       PCBDat()
  2898. ;    30      PPEPath()
  2899. ;    15      PcbNode()
  2900. ;    13      ReadLine()
  2901. ;    3       GetToken()
  2902. ;    4       Exist()
  2903. ;    2       I2S()
  2904. ;    4       S2I()
  2905. ;    2       GetX()
  2906. ;    3       GetY()
  2907. ;    8       GrafMode()
  2908. ;    2       FileInf()
  2909. ;    2       U_RecNum()
  2910. ;    5       ScrText()
  2911. ;    3       StripStr()
  2912. ;    13      ToInteger()
  2913. ;    1       ToInt()
  2914. ;    2       ConfReg()
  2915. ;    1       HiConfNum()
  2916. ;    1       StackErr()
  2917. ;    11      ConfInfo()
  2918. ;
  2919. ;------------------------------------------------------------------------------
  2920. ;
  2921. ; Analysis flags : WRSd
  2922. ;
  2923. ; W - Write user ■ 5
  2924. ;     Program writes a user record. Although this may be normal for a
  2925. ;     User Editor, it may also be a way to modify an account level.
  2926. ;     ■ Search for : PUTUSER
  2927. ;
  2928. ; R - Read user ■ 5
  2929. ;     User records are read, this may signify that someone wants to get
  2930. ;     various informations about a user (for example his password), but
  2931. ;     this may also be normal for a program accessing user records (for
  2932. ;     example a User Editor)
  2933. ;     ■ Search for : GETALTUSER
  2934. ;
  2935. ; S - Shell to DOS ■ 5
  2936. ;     This may be normal if the PPE need to execute an external command,
  2937. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  2938. ;     or usefull (sorting, maintenance,...). Check!
  2939. ;     ■ Search for : SHELL
  2940. ;
  2941. ; d - Access PCBOARD.DAT ■ 2
  2942. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  2943. ;     for many PPE so they can find various informations on the system
  2944. ;     (system paths, max number of lines in messages, ...) but it may also
  2945. ;     be a way to gather vital informations.
  2946. ;     ■ Search for : PCBDAT()
  2947. ;
  2948. ;------------------------------------------------------------------------------
  2949. ;
  2950. ; Postprocessing report
  2951. ;
  2952. ;    6       For/Next
  2953. ;    41      While/EndWhile
  2954. ;    182     If/Then or If/Then/Else
  2955. ;    6       Select Case
  2956. ;
  2957. ;------------------------------------------------------------------------------
  2958. ;                 AEGiS Corp - Break the routines, code against the machines!
  2959. ;------------------------------------------------------------------------------
  2960.